More release assets #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | ||
on: | ||
workflow_call: | ||
inputs: | ||
kind: | ||
required: false | ||
type: string | ||
default: dev | ||
package_command: | ||
required: false | ||
type: string | ||
description: Command used to build python package | ||
default: >- | ||
python -m | ||
build | ||
-C--global-option=egg_info | ||
-C--global-option=--tag-build=+dev$(git rev-parse --short HEAD) | ||
--wheel | ||
--outdir dist/ | ||
secrets: | ||
PYPI_API_TOKEN: | ||
required: false | ||
jobs: | ||
get-changed-files: | ||
name: Get Changed Files | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read # for dorny/paths-filter to fetch a list of changed files | ||
pull-requests: read # for dorny/paths-filter to read pull requests | ||
outputs: | ||
changed-files: ${{ toJSON(steps.changed-files.outputs) }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Get Changed Files | ||
id: changed-files | ||
uses: dorny/paths-filter@v2 | ||
with: | ||
token: ${{ github.token }} | ||
list-files: json | ||
filters: | | ||
repo: | ||
- added|modified: | ||
- '**' | ||
deleted: | ||
- deleted: | ||
- '**' | ||
pre-commit: | ||
name: Pre-Commit | ||
uses: ./.github/workflows/pre-commit-action.yml | ||
needs: | ||
- get-changed-files | ||
with: | ||
changed-files: ${{ needs.get-changed-files.outputs.changed-files }} | ||
test: | ||
name: Test | ||
needs: | ||
- get-changed-files | ||
uses: ./.github/workflows/test-action.yml | ||
with: | ||
changed-files: ${{ needs.get-changed-files.outputs.changed-files }} | ||
build-python-package: | ||
name: Python Package | ||
uses: ./.github/workflows/package-action.yml | ||
needs: | ||
- pre-commit | ||
- test | ||
with: | ||
kind: "${{ inputs.kind }}" | ||
cmd: "${{ inputs.package_command }}" | ||
test-python-package: | ||
name: Test Python Package | ||
needs: | ||
- get-changed-files | ||
uses: ./.github/workflows/test-package-action.yml | ||
with: | ||
changed-files: ${{ needs.get-changed-files.outputs.changed-files }} | ||
deploy-python-package: | ||
name: Deploy Python Package | ||
uses: ./.github/workflows/deploy-package-action.yml | ||
if: ${{ inputs.kind == 'release' && success() }} | ||
needs: | ||
- pre-commit | ||
- test | ||
- test-python-package | ||
- build-python-package | ||
create-release: | ||
name: Create Github Release | ||
uses: ./.github/workflows/github-release.yml | ||
if: ${{ inputs.kind == 'release' && success() }} | ||
needs: | ||
- build-python-package | ||
- deploy-python-package | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
if: ${{ inputs.kind == 'release' && success() }} | ||
needs: | ||
- build-python-package | ||
- deploy-python-package | ||
set-pipeline-exit-status: | ||
# This step is just so we can make github require this step, to pass checks | ||
# on a pull request instead of requiring all | ||
name: Set the CI Pipeline Exit Status | ||
runs-on: ubuntu-latest | ||
if: always() | ||
needs: | ||
- pre-commit | ||
- test | ||
- deploy-python-package | ||
- create-release | ||
steps: | ||
- name: Get workflow information | ||
id: get-workflow-info | ||
uses: technote-space/workflow-conclusion-action@v3 | ||
- name: Set Pipeline Exit Status | ||
shell: bash | ||
run: | | ||
if [ "${{ steps.get-workflow-info.outputs.conclusion }}" != "success" ]; then | ||
exit 1 | ||
else | ||
exit 0 | ||
fi | ||
- name: Done | ||
if: always() | ||
run: | ||
echo "All workflows finished" |