Skip to content

warbird

warbird #153

Workflow file for this run

name: ci/cd
on:
push:
branches: [ '**' ]
tags-ignore: [ '**' ]
jobs:
py-versions:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.versions.outputs.matrix }}
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.sha }} # lock to triggered commit ('github.ref' is dynamic)
- id: versions
uses: WIPACrepo/wipac-dev-py-versions-action@v2.7
############################################################################
# LINTERS
############################################################################
flake8:
needs: [ py-versions ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
py3: ${{ fromJSON(needs.py-versions.outputs.matrix) }}
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.sha }} # lock to triggered commit ('github.ref' is dynamic)
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py3 }}
- uses: WIPACrepo/wipac-dev-flake8-action@v1.3
with:
max-complexity: 10 # ideal is ~10-15
mypy:
needs: [ py-versions ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
py3: ${{ fromJSON(needs.py-versions.outputs.matrix) }}
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.sha }} # lock to triggered commit ('github.ref' is dynamic)
fetch-depth: 0 # setuptools-scm needs to access git tags
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py3 }}
- uses: WIPACrepo/wipac-dev-mypy-action@v2.0
############################################################################
# PACKAGING
############################################################################
py-setup:
if: ${{ github.actor != 'dependabot[bot]' }} # dependabot cannot access PAT
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
ref: ${{ github.ref }} # dont lock to sha (action needs to push)
fetch-depth: 0 # setuptools-scm needs to access git tags
- uses: WIPACrepo/wipac-dev-py-setup-action@v5.8
with:
mode: PACKAGING_AND_PYPI
pypi_name: 'wipac-dev-actions-testbed'
python_min: 3.12
author: WIPAC Developers
author_email: developers@icecube.wisc.edu
keywords_comma: "WIPAC, CI/CD, gitops, testbed"
auto_mypy_option: True
py-dependencies:
runs-on: ubuntu-latest
steps:
- uses: WIPACrepo/wipac-dev-py-dependencies-action@not-too-soon
############################################################################
# TESTS
############################################################################
# :o)
############################################################################
# TAG NEW VERSION & MAKE RELEASE
############################################################################
tag-and-release:
# only run on main/default
if: format('refs/heads/{0}', github.event.repository.default_branch) == github.ref
needs:
- py-versions
- flake8
- mypy
- py-setup
- py-dependencies
uses: WIPACrepo/wipac-dev-workflows/.github/workflows/tag-and-release.yml@v1.20
with:
project-type: python
python-version: "${{ fromJSON(needs.py-versions.outputs.matrix)[0] }}"
release-artifacts: |
py-dependencies-logs
publish-to-pypi: true
secrets:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}