GitHub Action
Workflow 파일
GitHub Action을 위한 Workflow yaml파일을 리포지토리의 .github/workflows 디렉토리에 저장하고 GitHub에 반영하면 자동으로 반영되어 실행됩니다.
컨텍스트 정보
사용할 수 있는 컨텍스트 정보를 아래 Action을 통해 확인 할 수 있습니다.
name: Context testing
on: push
jobs:
dump_contexts_to_log:
runs-on: ubuntu-latest
steps:
- name: Dump GitHub context
id: github_context_step
run: echo '${{ toJSON(github) }}'
- name: Dump job context
run: echo '${{ toJSON(job) }}'
- name: Dump steps context
run: echo '${{ toJSON(steps) }}'
- name: Dump runner context
run: echo '${{ toJSON(runner) }}'
- name: Dump strategy context
run: echo '${{ toJSON(strategy) }}'
- name: Dump matrix context
run: echo '${{ toJSON(matrix) }}'
동시성 제어
같은 Workflow, 같은 브랜치에서 실행되는 Workflow는 마지막에 제출된 것만 실행되도록하는 설정은 아래와 같습니다.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
concurrency는 Job에 선언할 수 있습니다. group은 대소문자를 구분하지 않습니다.
버전 태그
name: Hash
on:
push:
branches:
- main
workflow_dispatch:
jobs:
hash:
runs-on: ubuntu-latest
steps:
- name: Get TAG
id: tag
run: |
TAG=$(echo ${{ github.sha }} | cut -c1-7)
echo TAG=$TAG
echo "tag=$TAG" >> $GITHUB_OUTPUT
name: Version
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
jobs:
version:
runs-on: ubuntu-latest
steps:
- name: Get TAG
id: tag
run: |
TAG=${{ github.ref_name }}
echo TAG=$TAG
echo "tag=$TAG" >> $GITHUB_OUTPUT