From 5c88410ef9c6f98eaf59f73bba78fb69bb5db48b Mon Sep 17 00:00:00 2001 From: Chan Young Date: Sun, 21 Jul 2024 13:23:05 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20git=20ci=20action=20dev=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci-dev.yml | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/ci-dev.yml diff --git a/.github/workflows/ci-dev.yml b/.github/workflows/ci-dev.yml new file mode 100644 index 0000000..a3f862a --- /dev/null +++ b/.github/workflows/ci-dev.yml @@ -0,0 +1,59 @@ +name: CI + +on: + push: + branches: [ "dev"] + +jobs: + build: + runs-on: ubuntu-latest + + env: + DOCKER_IMAGE_VERSION: 'latest-dev' + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + + - name: make firebase adminsdk json + run: | + touch ./dplanner/src/main/resources/dplanner-firebase-adminsdk.json + echo '${{secrets.FIREBASE}}' > ./dplanner/src/main/resources/dplanner-firebase-adminsdk.json + shell: bash + + - name: Substitute environment variables DEV + if: contains(github.ref,'dev') + uses: microsoft/variable-substitution@v1 + with: + files: ./dplanner/src/main/resources/application-production.yml + env: + spring.datasource.url: ${{ secrets.DB_URL_DEV }} + spring.datasource.username: ${{ secrets.DB_USER }} + spring.datasource.password: ${{ secrets.DB_PASSWORD }} + cloud.aws.credentials.access-key: ${{secrets.AWS_S3_ACCESSKEY}} + cloud.aws.credentials.secret-key: ${{secrets.AWS_S3_SECRETKEY}} + + + - name: Build with Gradle + run: | + cd ./dplanner + chmod +x ./gradlew + ./gradlew clean build -x test + + - name: Build Docker image + run: sudo docker build --no-cache -t dplanner/api:${{ env.DOCKER_IMAGE_VERSION }} -f ./dplanner/deploy/Dockerfile ./dplanner --platform linux/x86_64 + + - name: Push Docker image + run: | + sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + sudo docker push dplanner/api:${{ env.DOCKER_IMAGE_VERSION }} + + - name: Clean Docker image + run: sudo docker rmi dplanner/api:${{ env.DOCKER_IMAGE_VERSION }}