|
1 | 1 | ---
|
2 | 2 | name: Python
|
3 | 3 |
|
| 4 | +# HINT: Sync this paths with the egrep in step check_files |
4 | 5 | on:
|
5 | 6 | push:
|
6 | 7 | branches: [ "master", "main" ]
|
7 | 8 | paths:
|
8 | 9 | - 'pyproject.toml'
|
| 10 | + - 'setup.cfg' |
9 | 11 | - '**.py'
|
10 |
| - - '.github/workflows/python-testing.yml' |
| 12 | + - '.github/workflows/*.yml' |
11 | 13 |
|
12 | 14 | pull_request:
|
13 | 15 | branches: [ "master", "main" ]
|
14 | 16 | paths:
|
15 | 17 | - 'pyproject.toml'
|
| 18 | + - 'setup.cfg' |
16 | 19 | - '**.py'
|
17 |
| - - '.github/workflows/python-testing.yml' |
| 20 | + - '.github/workflows/*.yml' |
18 | 21 |
|
19 | 22 | permissions:
|
20 | 23 | contents: read
|
21 | 24 |
|
22 | 25 | concurrency:
|
23 | 26 | # only cancel in-progress runs of the same workflow
|
24 | 27 | group: ${{ github.workflow }}-${{ github.ref }}
|
25 |
| - # ${{ github.head_ref || github.run_id }} |
26 | 28 | cancel-in-progress: true
|
27 | 29 |
|
28 | 30 |
|
29 | 31 | jobs:
|
| 32 | + check-files: |
| 33 | + runs-on: ubuntu-latest |
| 34 | + outputs: |
| 35 | + can_run: ${{ steps.check_files.outputs.can_run }} |
| 36 | + |
| 37 | + steps: |
| 38 | + - uses: actions/checkout@v3 |
| 39 | + with: |
| 40 | + fetch-depth: 0 |
| 41 | + |
| 42 | + - name: GitHub variables |
| 43 | + id: gh-vars |
| 44 | + run: | |
| 45 | + for var in GITHUB_WORKFLOW GITHUB_ACTION GITHUB_ACTIONS GITHUB_REPOSITORY GITHUB_EVEN_NAME GITHUB_EVENT_PATH GITHUB_WORKSPACE GITHUB_SHA GITHUB_REF GITHUB_HEAD_REF GITHUB_BASE_REF; do |
| 46 | + echo "$var = ${!var}" |
| 47 | + done |
| 48 | +
|
| 49 | + - name: Check for file changes |
| 50 | + id: check_files |
| 51 | + run: | |
| 52 | + can_run=$(git diff --name-only ${{ github.event.after }} ${{ github.event.before }} | \ |
| 53 | + egrep -q '.github/workflows/|pyproject.toml|setup.cfg|\.py$' && echo 1 || echo 0) |
| 54 | + echo "can_run=$can_run" >> $GITHUB_OUTPUT |
| 55 | +
|
| 56 | + skip_test: |
| 57 | + runs-on: ubuntu-latest |
| 58 | + needs: check-files |
| 59 | + timeout-minutes: 2 |
| 60 | + if: ${{ needs.check-files.outputs.can_run == '0' }} |
| 61 | + |
| 62 | + steps: |
| 63 | + - name: Skip test |
| 64 | + run: | |
| 65 | + echo "Nothing to do as no TOML, Python, or YAML file has been changed. |
| 66 | + " |
| 67 | + echo "Skipping." |
| 68 | +
|
30 | 69 | check:
|
31 | 70 | runs-on: ubuntu-latest
|
| 71 | + needs: check-files |
32 | 72 | # Timout of 15min
|
33 | 73 | timeout-minutes: 15
|
| 74 | + # needs.check-files.outputs.can_run |
| 75 | + if: ${{ needs.check-files.outputs.can_run == '1' }} |
34 | 76 |
|
35 | 77 | steps:
|
36 | 78 | - uses: actions/checkout@v3
|
37 |
| - - name: Output env variables |
38 |
| - run: | |
39 |
| - echo "Default branch=${default-branch}" |
40 |
| - echo "GITHUB_WORKFLOW=${GITHUB_WORKFLOW}" |
41 |
| - echo "GITHUB_ACTION=$GITHUB_ACTION" |
42 |
| - echo "GITHUB_ACTIONS=$GITHUB_ACTIONS" |
43 |
| - echo "GITHUB_ACTOR=$GITHUB_ACTOR" |
44 |
| - echo "GITHUB_REPOSITORY=$GITHUB_REPOSITORY" |
45 |
| - echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME" |
46 |
| - echo "GITHUB_EVENT_PATH=$GITHUB_EVENT_PATH" |
47 |
| - echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE" |
48 |
| - echo "GITHUB_SHA=$GITHUB_SHA" |
49 |
| - echo "GITHUB_REF=$GITHUB_REF" |
50 |
| - echo "GITHUB_HEAD_REF=$GITHUB_HEAD_REF" |
51 |
| - echo "GITHUB_BASE_REF=$GITHUB_BASE_REF" |
52 |
| - echo "::debug::---Start content of file $GITHUB_EVENT_PATH" |
53 |
| - cat $GITHUB_EVENT_PATH |
54 |
| - echo "\n" |
55 |
| - echo "::debug::---end" |
56 | 79 | - name: Set up Python ${{ matrix.python-version }}
|
57 | 80 | uses: actions/setup-python@v4
|
58 | 81 | with:
|
|
0 commit comments