홈 › CI/CD › 02 / 7

GitHub Actions 기초

섹션 7진행 0 / 7

6. 연습 문제

문제 1. push·PR·수동 실행 트리거 작성

main 브랜치로 push 될 때, main 대상 PR 이 열리거나 갱신될 때, 그리고 수동 실행 버튼을 눌렀을 때 모두 실행되는 on: 을 쓰세요.

yaml
on: { push: { branches: [main] }, pull_request: { branches: [main] }, workflow_dispatch: {} }

세 트리거를 나란히 적으면 셋 중 하나만 맞아도 워크플로가 실행됩니다.

문제 2. run 과 uses 구분

저장소 코드를 내려받는 스텝과 mvn test 를 실행하는 스텝 중 어느 것이 run: 이고 어느 것이 uses: 인지 이유와 함께 쓰세요.

text
저장소 코드 내려받기 → uses: actions/checkout@v4 (재사용 액션)
mvn test 실행         → run: mvn test (셸 명령)

외부 액션을 불러오면 uses:, 셸 명령을 직접 쓰면 run: 입니다.

문제 3. Java 11·17·21 매트릭스 작성

세 가지 Java 버전으로 같은 잡을 병렬 실행하는 strategy 를 쓰세요.

yaml
strategy:
  matrix:
    java: [11, 17, 21]

actions/setup-java 의 java-version 에 ${{ matrix.java }} 를 넣으면 세 번 반복됩니다.

문제 4. 시크릿을 쓰는 배포 스텝 작성

DEPLOY_TOKEN 이라는 시크릿을 읽어 배포 명령에 넘기는 스텝을 쓰세요.

yaml
- name: 배포
  run: ./deploy.sh --token "${{ secrets.DEPLOY_TOKEN }}"

값은 로그에서 자동으로 *** 마스킹되므로 원문이 그대로 노출되지 않습니다.

문제 5. 빌드 산출물 업로드 스텝 작성

out 폴더를 build-output 이라는 이름의 아티팩트로 올리는 스텝을 쓰세요.

yaml
- uses: actions/upload-artifact@v4
  with:
    name: build-output
    path: out

name 은 화면에 표시될 아티팩트 이름, path 는 올릴 파일·폴더 경로입니다.