Skip to content

修改cicd文件

修改cicd文件 #20

Workflow file for this run

# 直型 maven package
name: Blog-App Workflow
on:
push:
branches: [ master ]
paths:
- src/**
- .github/workflows/ci-cd.yml
jobs:
# 進行 maven package
package:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'adopt'
- name: Get project version and artifactId
id: mvn-version
run: |
echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "ARTIFACT_ID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)" >> $GITHUB_ENV
- name: Set up the Maven dependencies caching
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build with Maven
run: mvn clean package
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_ID }}-${{ env.PROJECT_VERSION }}
path: target/${{ env.ARTIFACT_ID }}-${{ env.PROJECT_VERSION }}.jar
# 進行 docker image build
build-image:
runs-on: ubuntu-20.04
needs: package
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GCR
uses: docker/login-action@v4
with:
registry: asia-east1-docker.pkg.dev
username: ${{ secrets.GCP_USERNAME }}
password: ${{ secrets.GCP_CREDENTIALS }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
push: true
tags: asia-east1-docker.pkg.dev/blogapp-409806/blog/${{ env.ARTIFACT_ID }}:${{ env.PROJECT_VERSION }}
deploy:
runs-on: ubuntu-20.04
needs: build-image
steps:
- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.GCE_HOST }}
username: ${{ secrets.GCP_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /home/${{ secrets.GCP_USERNAME }}/deploy
docker login -u ${{ secrets.GCP_USERNAME }} -p "${{ secrets.GCP_CREDENTIALS }}" asia-east1-docker.pkg.dev
docker pull asia-east1-docker.pkg.dev/blogapp-409806/blog/${{ env.ARTIFACT_ID }}:${{ env.MVN_VERSION }}
docker compose up -d