CI 과정
1. Actions ➡️ Set up this workflow
2. .github\workflows의 main.yml에 Workflow 작성
- yml 파일명은 바꿔도 됨
- ⚠️ workflows 폴더 아래에 yml 파일이 있어야 워크플로우가 동작함
name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@ccb4328a959376b642e027874838f60f8e596de3
- name: Run chmod to make gradlew executable
run: chmod +x ./gradlew
- name: Build with Gradle
uses: gradle/gradle-build-action@749f47bda3e44aa060e82d7b3ef7e40d953bd629
with:
arguments: build
👆 CI를 생성해서 Gradle을 사용한 Java 빌드 및 테스트
checkout 단계에서는 repository의 사본을 다운로드
setup-java Eclipse Temurin(Java) 11 JDK by Eclipse Adoptium을 구성
Validate Gradle wrapper 단계에서는 원본 트리에 있는 Gradle wrapper JAR 파일의 체크섬의 유효성을 검사
Run chmod to make gradlew executable 단계에서는 권한을 허용한다.
Build with Gradle 단계에서는 gradle/gradle-build-action 작업을 사용하여 빌드를 수행
이 단계에서는 Gradle 호출, 결과 수집, 작업 간의 캐싱 상태를 처리
💊 CI 트러블슈팅
FAILURE: Build failed with an exception.
* What went wrong:
Directory '/home/runner/work/notification-practice/notification-practice' does not contain a Gradle build.
A Gradle build should contain a 'settings.gradle' or 'settings.gradle.kts' file in its root directory. It may also contain a 'build.gradle' or 'build.gradle.kts' file.
루트 경로에 빌드를 하기 위해서 필요한 settings.gradle, build.gradle을 찾을 수 없다고 한다.
- name: Build with Gradle
uses: gradle/gradle-build-action@749f47bda3e44aa060e82d7b3ef7e40d953bd629
with:
arguments: build
build-root-directory: ./notification
build-root-directory를 직접 설정해주었다!
루트 경로 아래에 있는 모듈 notification을 빌드해야해서
CD
- name: executing remote ssh commands using key
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
scripts: |
./deploy.sh
위의 코드에 추가해준다.
GitHub의 Settings ➡️ Secrets and variables ➡️ Actions에 secrets를 등록하자.
참고 👇
https://docs.github.com/ko/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
https://www.youtube.com/watch?v=Np64aq4AlLg
https://github.com/darass-team/2021-darass/blob/main/.github/workflows/BE_push_builder.yml
'git' 카테고리의 다른 글
error: failed to push some refs to ~ (0) | 2023.06.25 |
---|---|
[Git] feature branch 업데이트하기 (0) | 2023.05.18 |
remote: Write access to repository not granted. (0) | 2023.04.26 |
yml 파일 관리 (0) | 2023.04.24 |
[Git] fork (0) | 2023.04.01 |