GThub Actions 태그
6385 단어 GitHub Actionstech
개요
여러 번 조사하고 또 여러 번 테스트했기 때문에 자주 쓰는 것을 정리하고 싶습니다.
항목
push 시 실행
// feature/aaaで動く。 feature/aaa/bbbでは動かない
on:
push:
branch:
- feature/*
// feature/aaa, feature/aaa/bbbで動く
on:
push:
branch:
- feature/**
// なにかしらのtagがpushされたときに実行、branchのpushは無視
on:
push:
tags: [ '**' ]
branches-ignore: [ '**' ]
// 指定したpathの変更だけでは実行しない
on:
push:
branches:
- main
paths-ignore:
- '*.md'
- 'docs/**'
필터 패턴의 블러셔 수동 실행
on:
workflow_dispatch:
inputs:
env:
description: "実行環境"
required: true
default: "dev"
year:
description: "対象年 (ex. 2021)"
required: true
month:
description: "対象月 (ex. 1~12)"
required: true
day:
description: "対象日 (ex. 1~31)"
required: true
hour:
description: "対象時間 (ex. 0~23)"
required: true
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- name: Use the inputs
run: |
echo ${{ github.event.inputs.env }}
echo ${{ github.event.inputs.year }}
echo ${{ github.event.inputs.month }}
echo ${{ github.event.inputs.day }}
echo ${{ github.event.inputs.hour }}
workflow_api 디스패치 실행
↑ 지정된 워크플로우curl로 디스패치를 실행합니다.
curl -X POST \
-H "Accespt: application/vnd.github.v3+json" \
-H "Authorization: token ${TOKEN}" \
https://api.github.com/repos/{$YOUR_ORG}/${YOUR_REPO}/actions/workflows/${YOUR_WORKFLOW_FILENAME}/dispatches \
-d '{"ref":"master", "inputs":{"env":"'${env}'","year":"'${year}'", "month":"'${month}'", "day":"'${day}'", "hour":"'${hour}'"}}'
${TOKYEN} 이 작업 모드를 실행할 수 있는 사용자의 Personal Access Token 등집행
시간별 일요일
timezone은 UTC입니다.
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * *
on:
schedule:
- cron: "0,30 1-3 * * *"
환경 변수 추가
steps:
- name: Set the value
id: step_one
run: echo "user_name=xxx" >> $GITHUB_ENV
- name: Use the value
id: step_two
run: echo "${{ env.user_name }}"
output 매개 변수 추가
steps:
- name: Set the value
id: step_one
run: echo "::set-output name=user_name::xxx"
- name: Use the value
id: step_two
run: echo "${{ steps.step_one.outputs.user_name }}"
로그의 특정 문자열 숨기기
'***'마스크를 쓰세요.
steps:
- name: Set mask
run: echo "::add-mask::$MY_PASSWORD"
아카이브 파일
- name: Archive test result
uses: actions/upload-artifact@v1
with:
name: test-result
path: $GITHUB_WORKSPACE/target/surefire-reports
$GITHUB_WORKSPACE는 기본 환경 변수입니다.actions/checkkout에서git 창고 내용을 체크아웃하는 디렉터리 경로입니다.
탭 분기 이름 가져오기
- name: tag
run: echo ${GITHUB_REF##*/}
$GITHUB_REF는 워크플로우를 트리거하는 분기 또는 레이블 ref입니다.예:
refs/heads/feature-branch-1
또는 refs/tags/v1.0.0
.##*/
삭제refs/heads/
또는 refs/tags/
부분 때문에 feature-branch-1
, v1.0.0
를 받을 수 있습니다.slack 채널에 알림 보내기
- name: Send to slack channel
run: |
curl -X POST \
-d "payload={\"channel\": \"#YOUR_CHANNEL\", \"username\": \"YOUR_USER_NAME\", \"text\": \"YOUR_MESSAGE\", \"icon_emoji\": \":smile:\"}" \
${{ secrets.SLACK_NOTIFICATION_URL }}
SLACK_NOTIFICATION_URL은 Incoming Webhook의 URL입니다.슬랙 채널에 파일 올리기
- name: Upload file to slack channel
run: |
curl -F file=@$GITHUB_WORKSPACE/YOUR_FILE_NAME.csv \
-F channels=#YOUR_CHANNEL \
-H "Authorization: Bearer $SLACK_APP_OAUTH_TOKEN" \
https://slack.com/api/files.upload
파일의 업로드는 Incoming Webhook에서 할 수 없기 때문에 슬랙 애플리케이션을 만들어 지정된 채널에 설치해야 한다.SLACK_APP_OAUTH_TOKIO는 슬랙 애플리케이션의 OAUTH 토큰이다.
자주 확인되는 링크
기본 환경 변수 목록
워크플로우 명령
문맥
워크플로우 구문
Reference
이 문제에 관하여(GThub Actions 태그), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/masaaania/articles/c930f2f755a577텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)