Skip to content

Commit

Permalink
feat: 新增檢查後端和前端變更的工作流程,優化部署條件
Browse files Browse the repository at this point in the history
  • Loading branch information
hanshino committed Nov 1, 2024
1 parent 3f32720 commit 4337c48
Showing 1 changed file with 33 additions and 3 deletions.
36 changes: 33 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,36 @@ on:
- main

jobs:
# Check for changes in backend and frontend
check-diff:
runs-on: ubuntu-latest
outputs:
backend_changed: ${{ steps.check_backend.outputs.changed }}
frontend_changed: ${{ steps.check_frontend.outputs.changed }}
steps:
- uses: actions/checkout@v4

- name: Check if backend has changes
id: check_backend
run: |
if git diff --quiet HEAD^ HEAD -- ./app; then
echo "changed=false" >> $GITHUB_OUTPUT
else
echo "changed=true" >> $GITHUB_OUTPUT
fi
- name: Check if frontend has changes
id: check_frontend
run: |
if git diff --quiet HEAD^ HEAD -- ./frontend; then
echo "changed=false" >> $GITHUB_OUTPUT
else
echo "changed=true" >> $GITHUB_OUTPUT
fi
# Backend build and push job
backend:
if: needs.check-diff.outputs.backend_changed == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -33,8 +61,9 @@ jobs:
cache-from: type=registry,ref=hanshino/redive_backend:buildcache
cache-to: type=registry,ref=hanshino/redive_backend:buildcache,mode=max

# Frontend build and push job, executed in parallel with backend
# Frontend build and push job
frontend:
if: needs.check-diff.outputs.frontend_changed == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -62,10 +91,11 @@ jobs:
build-args: |
REACT_APP_GOOGLE_ANALYTICS_ID=${{ secrets.GOOGLE_ANALYTICS_ID }}
# Deployment job, dependent on both backend and frontend build completion
# Deployment job
deploy:
runs-on: ubuntu-latest
needs: [backend, frontend] # Ensure that both backend and frontend jobs are finished before deploying
if: needs.backend.result == 'success' || needs.frontend.result == 'success'
steps:
- name: Deploy Redive linebot
uses: appleboy/[email protected]
Expand All @@ -83,4 +113,4 @@ jobs:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
uses: Ilshidur/action-discord@master
with:
args: "{{ EVENT_PAYLOAD.repository.full_name }} 已完成部署"
args: "{{ github.repository }} deployment complete."

0 comments on commit 4337c48

Please sign in to comment.