CircleCI API에서 cURL에서 매개 변수를 지정하고 Job 실행
9968 단어 CircleCICircleCI2.1CircleCI2.0
CircleCI 설정
프로젝트 설정
프로젝트 → Advanced Settings에서 Enable pipelines가 On으로 설정되어 있는지 확인합니다. 기본 설정은 On입니다.
API 토큰 발급
사용자 설정을 클릭하십시오
Personal API Tokens를 클릭하십시오
Create New Token을 클릭하여 토큰을 만듭니다
API를 통해 Job 실행
샘플 YAML
.circleci/config.yml
version: 2.1
parameters:
messages:
type: string
default: ""
jobs:
build:
docker:
- image: circleci/node
steps:
- checkout
- run:
command: |
echo "<< pipeline.parameters.messages >>"
workflows:
version: 2.1
workflow:
jobs:
- build
실행 명령
curl -u [circleci-api-token]:
-X POST
-H "Content-Type: application/json"
-d '{"branch":"[branch_name]",
"parameters":
{"messages": "hello,world!"}
}'
https://circleci.com/api/v2/project/gh/[github_project_name]/[github_repo_name]/pipeline
실행 결과
명령 해설 해설
circleci-api-token
브랜치, 파라미터
현재의 API v2의 사양이라고 리비전은 지정할 수 없는 것 같다? 입니다. 분기 이름을 지정합니다. 파라미터를 지정하는 경우는 {"파라미터명1":"값1", "파라미터명2":"값2",...}의 형식이 됩니다.
API 버전
1.1 대신 2를 사용합니다. CircleCI의 Using the API to Trigger Jobs - CircleCI을 참고하면 version 1.1의 API 레퍼런스에 링크가 붙어 있습니다.
version 1.1에서는 움직이지 않으므로 반드시 version2 참조 를 참고로 합니다.
기타
Contexts 정보
Contexts(프로젝트 전체의 환경 변수를 설정하는 기능)로 지정한 환경 변수도 Job에 반영됩니다.
Commands, Orbs 정보
config.yml에 commands 섹션과 orbs 섹션이 포함되어 있어도 API에서 Job이 실행됩니다.
예를 들면 다음과 같은 config.yml에서도 동작 확인할 수 있었습니다. API에서 Google Compute Engine으로 인스턴스를 시작하고 시작이 성공하면 Twitter의 직접 메시지에 알리는 프로세스입니다.
.circleci/config.yml
version: 2.1
orbs:
gcp-cli: circleci/[email protected]
parameters:
instance-name:
type: string
default: ""
commands:
initialize-gce:
description: "Register GCP access keys to CircleCI project"
steps:
- gcp-cli/initialize
start-vm:
steps:
- run:
command: |
gcloud compute instances start << pipeline.parameters.instance-name >> \
--zone=asia-northeast1-b
send-notification:
description: "Send job status to Twitter direct message"
steps:
- run:
name: Set external IP address to environment variable
command: |
ip_addr=$(
gcloud compute instances describe << pipeline.parameters.instance-name >> \
--format='get(networkInterfaces[0].accessConfigs[0].natIP)' \
--zone=asia-northeast1-b \
)
echo "export INSTANCE_IP=${ip_addr}" >> $BASH_ENV
- run:
name: Install Tweepy
command: |
pip install tweepy
- run:
name: Send Job notifcation
command: |
python tweet.py \
${TWITTER_CONSUMER_KEY} \
${TWITTER_CONSUMER_SECRET_KEY} \
${TWITTER_ACCESS_TOKEN} \
${TWITTER_ACCESS_TOKEN_SECRET} \
${TWITTER_RECIPIENT}
jobs:
build:
docker:
- image: google/cloud-sdk:latest
steps:
- checkout
- initialize-gce
- start-vm
- send-notification
workflows:
version: 2.1
start-vm:
jobs:
- build:
context: GCP
참고 사이트
Reference
이 문제에 관하여(CircleCI API에서 cURL에서 매개 변수를 지정하고 Job 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mamono210/items/37f8a5cf68bbef0a6c42텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)