|
|
|
@ -6,22 +6,29 @@ on:
|
|
|
|
|
- 'pr*' |
|
|
|
|
|
|
|
|
|
jobs: |
|
|
|
|
build-and-push: |
|
|
|
|
check_change: |
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
|
|
|
|
outputs: |
|
|
|
|
should_skip: ${{ steps.set_skip_flag.outputs.should_skip }} # 输出 should_skip 标志 |
|
|
|
|
steps: |
|
|
|
|
- name: Checkout repository |
|
|
|
|
uses: actions/checkout@v4 |
|
|
|
|
|
|
|
|
|
- name: Check for changes |
|
|
|
|
- name: Check conditions |
|
|
|
|
id: set_skip_flag |
|
|
|
|
run: | |
|
|
|
|
if git diff --name-only HEAD^ dev | grep -E 'poetry.lock|pyproject.toml|Dockerfile-base|package.json|go.mod|yarn.lock|pom.xml|install_deps.sh'; then |
|
|
|
|
echo "Changes detected, proceeding with the job." |
|
|
|
|
if git diff --name-only dev | grep -E 'poetry.lock|pyproject.toml|Dockerfile-base|package.json|go.mod|yarn.lock|pom.xml|install_deps.sh';then |
|
|
|
|
echo "Found deps file changes" |
|
|
|
|
else |
|
|
|
|
echo "No relevant changes detected, exiting." |
|
|
|
|
exit 0 |
|
|
|
|
echo "Not found deps file changes, skip build" |
|
|
|
|
echo "::set-output name=should_skip::true" # 根据条件设置输出 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
build-and-push: |
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
needs: check_skip # 依赖 check_skip job 的执行结果 |
|
|
|
|
if: needs.check_skip.outputs.should_skip != 'true' |
|
|
|
|
steps: |
|
|
|
|
- name: Checkout repository |
|
|
|
|
uses: actions/checkout@v4 |
|
|
|
|
|
|
|
|
|
- name: Set up QEMU |
|
|
|
|
uses: docker/setup-qemu-action@v3 |
|
|
|
|
|
|
|
|
|