3. S3 Bucket 생성하고 업로드하기
1. AWS S3 Bucket 생성
"Amazon S3"로 접속하여 왼쪽 사이드 바에 "버킷"을 클릭한다.
"버킷 만들기"를 클릭한다.
"버킷 이름"을 만들어준다.
버킷을 먼저 생성하고 나중에 수정해 줄 것이기 때문에 일단 "모든 퍼블릭 액세스 차단"을 선택하였다.
아래와 같이 설정하고 맨 아래쪽의 "버킷 만들기"를 클릭한다.
버킷이 생성되었다.
2. WorkFlows의 yml 수정하기
workflows의 yml을 아래와 같이 수정해 주었다.
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
name: Java CI with Gradle
on:
push:
branches: [ "git-hub-actions" ]
pull_request:
branches: [ "git-hub-actions" ]
env:
S3_BUCKET_NAME: github-actions-deploy-0824
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
#Gradle 유효성 검사
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@ccb4328a959376b642e027874838f60f8e596de3
#Gradle 빌드
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
uses: gradle/gradle-build-action@bd5760595778326ba7f1441bcf7e88b49de61a25 # v2.6.0
with:
arguments: build
#디렉토리 생성
- name: Make Directory
run: mkdir -p deploy
#Jar 파일 복사
- name: Copy Jar
run: cp ./build/libs/*.jar ./deploy
- name: Make zip file
run: zip -r ./github-actions.zip ./deploy
shell: bash
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
- name: Upload to S3
run: aws s3 cp --region ap-northeast-2 ./github-actions.zip s3://$S3_BUCKET_NAME/
관리자 권한으로 gradle을 빌드하고,
./build/libs/*.jar에 있는 jar 파일을 ./deploy 경로에 복사하고,
압축한 뒤 S3에 업로드하겠다는 의미이다.
${{ secrets.AWS_ACCESS_KEY_ID }}, ${{ secrets.AWS_SECRET_ACCESS_KEY }} 는
각각 IAM에서 생성하여 GitHub에 등록한 secrets로부터 할당 키 값을 받아온다.
3. CI와 S3업로드 확인하기
만약 workflow의 yml이 잘못 작성된다면 리포지토리의 Actions에서 "x" 표시가 나오며 통과가 되지 않는다.
push를 했다면 commit이 되지만, pull_request를 했다면
미리 빌드 과정을 GitHub Actions로 확인이 가능하기 때문에
더욱 신뢰성 있는 코드로 통합을 할 수 있게 된다.
이전에는 build와 test를 일일이 했지만, GitHub에 Event를 주어 트리거하는 것만으로도
신속하고 신뢰성 있는 통합이 가능해졌다.
다시 한번 성공할 수 있도록 수정하고 push를 해보겠다.
build를 성공하고 workflows가 수행되었다.
이제 S3 버킷을 확인해 보자.
S3 버킷에 yml에 작성한 이름 그대로 업로드되었다.
'깃 탐구' 카테고리의 다른 글
GitHub Actions) 5. EC2 서버 설정하기 (0) | 2023.08.26 |
---|---|
GitHub Actions) 4. IAM 역할 생성하기 (0) | 2023.08.26 |
GitHub Actions) 2. IAM 사용자 생성 (0) | 2023.08.25 |
GitHub Actions) 1. Work Flows 만들기 (0) | 2023.08.24 |
GitHub Actions) GitHub Actions란 무엇일까? (0) | 2023.08.24 |