mirror of
https://github.com/selfxyz/self.git
synced 2026-02-19 02:24:25 -05:00
Enhance CI workflow by adding a conditional check for relevant file changes before executing jobs. This update improves efficiency for pull requests on the dev branch while maintaining execution for main and staging branches.
This commit is contained in:
51
.github/workflows/core-sdk-ci.yml
vendored
51
.github/workflows/core-sdk-ci.yml
vendored
@@ -2,14 +2,46 @@ name: Core SDK CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "sdk/core/**"
|
||||
- "common/**"
|
||||
- ".github/workflows/core-sdk-ci.yml"
|
||||
- ".github/actions/**"
|
||||
branches:
|
||||
- dev
|
||||
- staging
|
||||
- main
|
||||
|
||||
jobs:
|
||||
check_changes:
|
||||
runs-on: ubuntu-slim
|
||||
outputs:
|
||||
should_run: ${{ steps.filter.outputs.should_run }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check if should run
|
||||
id: filter
|
||||
run: |
|
||||
set -e
|
||||
if [[ "${{ github.base_ref }}" == "main" ]] || [[ "${{ github.base_ref }}" == "staging" ]]; then
|
||||
echo "should_run=true" >> $GITHUB_OUTPUT
|
||||
echo "Running for ${{ github.base_ref }} - no path filter"
|
||||
else
|
||||
# For dev branch, check if relevant files changed
|
||||
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) || {
|
||||
echo "Error: Failed to diff against base branch"
|
||||
exit 1
|
||||
}
|
||||
if echo "$CHANGED_FILES" | grep -qE "^(sdk/core/|common/|\.github/workflows/core-sdk-ci\.yml|\.github/actions/)"; then
|
||||
echo "should_run=true" >> $GITHUB_OUTPUT
|
||||
echo "Running for dev - relevant files changed"
|
||||
else
|
||||
echo "should_run=false" >> $GITHUB_OUTPUT
|
||||
echo "Skipping for dev - no relevant files changed"
|
||||
fi
|
||||
fi
|
||||
|
||||
build:
|
||||
needs: check_changes
|
||||
if: github.event.pull_request.draft == false && needs.check_changes.outputs.should_run == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -34,7 +66,8 @@ jobs:
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
needs: [check_changes, build]
|
||||
if: github.event.pull_request.draft == false && needs.check_changes.outputs.should_run == 'true'
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
@@ -63,7 +96,8 @@ jobs:
|
||||
|
||||
types:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
needs: [check_changes, build]
|
||||
if: github.event.pull_request.draft == false && needs.check_changes.outputs.should_run == 'true'
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
@@ -92,7 +126,8 @@ jobs:
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
needs: [check_changes, build]
|
||||
if: github.event.pull_request.draft == false && needs.check_changes.outputs.should_run == 'true'
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
|
||||
Reference in New Issue
Block a user