Merge pull request #81 from lotteon2/develop #41
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy production profile about dailyon | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- 'main' | |
paths-ignore: | |
- '**/**-dev.yml' | |
- '**/**-dev.sh' | |
- '**/**-dev' | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_ECR_REPOSITORY: ${{ secrets.AWS_ECR_REPOSITORY }} | |
IMAGE_TAG: ${{ github.sha }} | |
AWS_EKS_CLUSTER_NAME: ${{ secrets.AWS_EKS_CLUSTER_NAME }} | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Gradle Caching | |
uses: actions/cache@v3 | |
with: | |
path: | | |
./.gradle/caches | |
./.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '11' | |
distribution: 'corretto' | |
cache: gradle | |
- name: Grant execute permission to gradlew | |
run: chmod +x gradlew | |
- name: Build with Gradle | |
run: ./gradlew build | |
shell: bash | |
test: | |
needs: build | |
environment: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '11' | |
distribution: 'corretto' | |
cache: gradle | |
- name: Grant execute permission to gradlew | |
run: chmod +x gradlew | |
- name: Test with Gradle | |
run: ./gradlew test | |
shell: bash | |
deploy: | |
needs: test | |
environment: production | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '11' | |
distribution: 'corretto' | |
cache: gradle | |
- name: Grant execute permission to gradlew | |
run: chmod +x gradlew | |
- name: build with Gradle without test | |
run: ./gradlew build -x test | |
shell: bash | |
# Configure to AWS | |
- name: aws configure | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ap-northeast-2 | |
# Login to ECR | |
- name: Login to ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build and push | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./Dockerfile-prod | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ env.ECR_REGISTRY }}/${{ env.AWS_ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} | |
- name: Update Container image in kubernetes pod | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
run: sh ./deploy-prod.sh |