修改cicd文件 #20
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
# 直型 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 | |