From 97d6f191ac16003ef2c647845a5748f444284ec1 Mon Sep 17 00:00:00 2001 From: TaeinKim <66376774+Taein2@users.noreply.github.com> Date: Mon, 9 Oct 2023 03:03:16 +0900 Subject: [PATCH] Added : githubaction workflow build docker to ecr --- .github/workflows/core-service.yml | 68 ++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/core-service.yml diff --git a/.github/workflows/core-service.yml b/.github/workflows/core-service.yml new file mode 100644 index 00000000..4a46557d --- /dev/null +++ b/.github/workflows/core-service.yml @@ -0,0 +1,68 @@ +# 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: [ "main" ] + +env: + ecr_url: ${{ secrets.ECR_REPO_DEV }} + role_arn: ${{ secrets.OIDC_ROLE }} + aws_region: ${{ secrets.AWS_REGION }} + +permissions: + id-token: write + contents: read + +jobs: + build: + name: Build + runs-on: ubuntu-latest + + permissions: + id-token: write # This is required for requesting the JWT + contents: read # This is required for actions/checkout + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + cache: 'gradle' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build with Gradle + run: ./gradlew bootJar + + - name: Docker build + run: docker build -t core-service . + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-region: ${{ env.aws_region }} + role-session-name: GitHubActions + role-to-assume: ${{ env.role_arn }} + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + - name: Publish Image to ECR(CORE-SERVICE) + run: | + docker tag core-service:latest ${{ env.ecr_url }} + docker push ${{ env.ecr_url }}