Skip to content

Commit d1b58c3

Browse files
authored
#459 Migrate workflows to centralized SDK version matrix and fix job outputs (#460)
* #459 Migrate workflows to centralized SDK version matrix and fix job outputs * fix: formatting and zizmor template-injection warnings
1 parent 5ccd234 commit d1b58c3

7 files changed

Lines changed: 38 additions & 23 deletions

File tree

.github/workflows/build-distribution.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ permissions:
88
jobs:
99
build-distribution:
1010
name: Build distribution
11-
outputs:
12-
status: ${{ job.status }}
1311
permissions:
1412
contents: read
1513
runs-on: ubuntu-latest
@@ -51,10 +49,10 @@ jobs:
5149

5250
slack-notification:
5351
needs: [build-distribution]
54-
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.build-distribution.outputs.status ) && github.ref_name == github.event.repository.default_branch }}
52+
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.build-distribution.result ) && github.ref_name == github.event.repository.default_branch }}
5553
secrets:
5654
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
5755
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
5856
uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v4
5957
with:
60-
job-status: ${{ needs.build-distribution.outputs.status }}
58+
job-status: ${{ needs.build-distribution.result }}

.github/workflows/create-sphinx-documentation.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ permissions: {}
1010

1111
jobs:
1212
docs:
13-
outputs:
14-
status: ${{ job.status }}
1513
permissions:
1614
contents: write
1715
runs-on: ubuntu-latest
@@ -52,10 +50,10 @@ jobs:
5250

5351
slack-notification:
5452
needs: [docs]
55-
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.docs.outputs.status ) }}
53+
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.docs.result ) }}
5654
secrets:
5755
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
5856
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
5957
uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v4
6058
with:
61-
job-status: ${{ needs.docs.outputs.status }}
59+
job-status: ${{ needs.docs.result }}

.github/workflows/publish-to-pypi.yaml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ permissions: {}
1010
jobs:
1111
build-distribution:
1212
name: Build distribution
13-
outputs:
14-
status: ${{ job.status }}
1513
permissions:
1614
contents: read
1715
runs-on: ubuntu-latest
@@ -54,8 +52,6 @@ jobs:
5452
name: Publish Python distribution to PyPI
5553
needs:
5654
- build-distribution
57-
outputs:
58-
status: ${{ job.status }}
5955
permissions:
6056
id-token: write
6157
runs-on: ubuntu-latest
@@ -74,8 +70,6 @@ jobs:
7470
name: Sign the Python distribution with Sigstore and upload them to GitHub Release
7571
needs:
7672
- publish-to-pypi
77-
outputs:
78-
status: ${{ job.status }}
7973
permissions:
8074
contents: write # IMPORTANT: mandatory for making GitHub Releases
8175
id-token: write # IMPORTANT: mandatory for sigstore
@@ -105,10 +99,10 @@ jobs:
10599

106100
slack-notification:
107101
needs: [build-distribution, publish-to-pypi, github-release]
108-
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.build-distribution.outputs.status ) && contains(fromJSON('["failure", "cancelled"]'), needs.publish-to-pypi.outputs.status ) && contains(fromJSON('["failure", "cancelled"]'), needs.github-release.outputs.status ) && github.ref_name == github.event.repository.default_branch }}
102+
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.build-distribution.result ) && contains(fromJSON('["failure", "cancelled"]'), needs.publish-to-pypi.result ) && contains(fromJSON('["failure", "cancelled"]'), needs.github-release.result ) && github.ref_name == github.event.repository.default_branch }}
109103
secrets:
110104
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
111105
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
112106
uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v4
113107
with:
114-
job-status: ${{ needs.build-distribution.outputs.status && needs.publish-to-pypi.outputs.status && needs.github-release.outputs.status }}
108+
job-status: ${{ needs.build-distribution.result && needs.publish-to-pypi.result && needs.github-release.result }}

.github/workflows/pylint.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ permissions: {}
1212

1313
jobs:
1414
pylint:
15-
outputs:
16-
status: ${{ job.status }}
1715
permissions:
1816
contents: read
1917
runs-on: ubuntu-latest
@@ -49,10 +47,10 @@ jobs:
4947
5048
slack-notification:
5149
needs: [pylint]
52-
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.pylint.outputs.status ) && github.ref_name == github.event.repository.default_branch }}
50+
if: ${{ always() && contains(fromJSON('["failure", "cancelled"]'), needs.pylint.result ) && github.ref_name == github.event.repository.default_branch }}
5351
secrets:
5452
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
5553
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
5654
uses: senzing-factory/build-resources/.github/workflows/build-failure-slack-notification.yaml@v4
5755
with:
58-
job-status: ${{ needs.pylint.outputs.status }}
56+
job-status: ${{ needs.pylint.result }}

.github/workflows/pytest-darwin.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,17 @@ env:
1818
permissions: {}
1919

2020
jobs:
21+
sdk-versions:
22+
runs-on: ubuntu-latest
23+
outputs:
24+
senzingsdk-versions: ${{ steps.cfg.outputs.senzingsdk-versions }}
25+
steps:
26+
- id: cfg
27+
uses: senzing-factory/build-resources/sdk-versions@v4
28+
2129
pytest-darwin:
2230
name: "Pytest with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Python ${{ matrix.python-version }}"
31+
needs: sdk-versions
2332
permissions:
2433
contents: read
2534
runs-on: ${{ matrix.os }}
@@ -28,7 +37,7 @@ jobs:
2837
matrix:
2938
os: [macos-latest]
3039
python-version: ["3.10", "3.11", "3.12", "3.13"]
31-
senzingsdk-version: [production-v4, staging-v4]
40+
senzingsdk-version: ${{ fromJSON(needs.sdk-versions.outputs.senzingsdk-versions) }}
3241
timeout-minutes: 30
3342

3443
steps:

.github/workflows/pytest-linux.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,17 @@ env:
2020
permissions: {}
2121

2222
jobs:
23+
sdk-versions:
24+
runs-on: ubuntu-latest
25+
outputs:
26+
senzingsdk-versions: ${{ steps.cfg.outputs.senzingsdk-versions }}
27+
steps:
28+
- id: cfg
29+
uses: senzing-factory/build-resources/sdk-versions@v4
30+
2331
pytest-linux:
2432
name: "Pytest with Senzing: ${{ matrix.senzingsdk-version }}; OS: ${{ matrix.os }}; Python ${{ matrix.python-version }}"
33+
needs: sdk-versions
2534
permissions:
2635
contents: read
2736
runs-on: ${{ matrix.os }}
@@ -30,7 +39,7 @@ jobs:
3039
matrix:
3140
os: [ubuntu-latest]
3241
python-version: ["3.10", "3.11", "3.12", "3.13"]
33-
senzingsdk-version: [production-v4, staging-v4]
42+
senzingsdk-version: ${{ fromJSON(needs.sdk-versions.outputs.senzingsdk-versions) }}
3443
timeout-minutes: 30
3544

3645
steps:

.github/workflows/pytest-windows.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,25 @@ env:
1818
permissions: {}
1919

2020
jobs:
21+
sdk-versions:
22+
runs-on: ubuntu-latest
23+
outputs:
24+
senzingsdk-versions: ${{ steps.cfg.outputs.senzingsdk-versions }}
25+
steps:
26+
- id: cfg
27+
uses: senzing-factory/build-resources/sdk-versions@v4
28+
2129
pytest-windows:
2230
name: "Pytest with Senzing: ${{ matrix.senzingsdk-version }}; OS: windows-latest; Python ${{ matrix.python-version }}"
31+
needs: sdk-versions
2332
permissions:
2433
contents: read
2534
runs-on: windows-latest
2635
strategy:
2736
fail-fast: false
2837
matrix:
2938
python-version: ["3.10", "3.11", "3.12", "3.13"]
30-
senzingsdk-version: [production-v4, staging-v4]
39+
senzingsdk-version: ${{ fromJSON(needs.sdk-versions.outputs.senzingsdk-versions) }}
3140
timeout-minutes: 30
3241

3342
steps:

0 commit comments

Comments
 (0)