<bot> update dependencies*.log files(s) #96
This file contains hidden or 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/cd | |
| on: | |
| push: | |
| branches: [ '**' ] | |
| tags-ignore: [ '**' ] | |
| jobs: | |
| py-versions: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.versions.outputs.matrix }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.sha }} # lock to triggered commit ('github.ref' is dynamic) | |
| - id: versions | |
| uses: WIPACrepo/wipac-dev-py-versions-action@v2.5 | |
| ############################################################################ | |
| # 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@v4 | |
| 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@v4 | |
| 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-mypy-action@v2.0 | |
| ############################################################################ | |
| # PACKAGING | |
| ############################################################################ | |
| # writable-branch-detect: | |
| # runs-on: ubuntu-latest | |
| # outputs: | |
| # OKAY: ${{ steps.detect.outputs.OKAY }} | |
| # steps: | |
| # - name: is this a bot-writable branch? | |
| # id: detect | |
| # # dependabot can't access normal secrets | |
| # # & don't run non-branch triggers (like tags) | |
| # # & we don't want to trigger an update on PR's merge to main/master/default (which is a branch) | |
| # run: | | |
| # set -euo pipefail | |
| # echo "now: $(date -u +"%Y-%m-%dT%H:%M:%S.%3N")" | |
| # if [[ \ | |
| # ${{github.actor}} != 'dependabot[bot]' && \ | |
| # ${{github.ref_type}} == 'branch' && \ | |
| # ${{format('refs/heads/{0}', github.event.repository.default_branch)}} != ${{github.ref}} \ | |
| # ]]; then | |
| # echo "OKAY=true" >> "$GITHUB_OUTPUT" | |
| # echo "yes, this branch is compatible" | |
| # else | |
| # echo "OKAY=false" >> "$GITHUB_OUTPUT" | |
| # echo "no, this branch is incompatible" | |
| # fi | |
| py-setup: | |
| # needs: [ writable-branch-detect ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # if: needs.writable-branch-detect.outputs.OKAY == 'true' | |
| with: | |
| token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
| ref: ${{ github.ref }} # don't lock to 'sha' b/c action needs to push | |
| - uses: WIPACrepo/wipac-dev-py-setup-action@v5.0 | |
| # if: needs.writable-branch-detect.outputs.OKAY == 'true' | |
| with: | |
| 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: | |
| # needs: [ writable-branch-detect ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # if: needs.writable-branch-detect.outputs.OKAY == 'true' | |
| with: | |
| token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
| ref: ${{ github.ref }} # don't lock to 'sha' b/c action needs to push | |
| - uses: WIPACrepo/wipac-dev-py-dependencies-action@v2.1 | |
| # if: needs.writable-branch-detect.outputs.OKAY == 'true' | |
| with: | |
| use_directory: true | |
| ############################################################################ | |
| # TESTS | |
| ############################################################################ | |
| ############################################################################ | |
| # TAG NEW VERSION | |
| ############################################################################ | |
| tag-and-release: | |
| # only run on main/master/default | |
| if: format('refs/heads/{0}', github.event.repository.default_branch) == github.ref | |
| needs: [ | |
| py-versions, | |
| flake8, | |
| mypy, | |
| py-setup, | |
| py-dependencies | |
| ] | |
| runs-on: ubuntu-latest | |
| concurrency: tag-and-release # prevent any possible race conditions | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # required to see tags and commits | |
| ref: ${{ github.sha }} # lock to triggered commit ('github.ref' is dynamic) | |
| - uses: actions/setup-python@v5 # needed for building project | |
| with: | |
| python-version: "${{ fromJSON(needs.py-versions.outputs.matrix)[0] }}" | |
| # Get Next Version & Tag | |
| - uses: WIPACrepo/wipac-dev-next-version-action@v1.2 | |
| id: next-version | |
| with: | |
| force-patch-if-no-commit-token: true | |
| ignore-paths: | | |
| **/README.md | |
| .github/** | |
| .gitignore | |
| dependencies-logs/** | |
| tests/** | |
| - if: steps.next-version.outputs.version != '' | |
| name: Tag New Version | |
| run: | | |
| set -euo pipefail; echo "now: $(date -u +"%Y-%m-%dT%H:%M:%S.%3N")" | |
| git tag v${{ steps.next-version.outputs.version }} # note: prepend 'v' | |
| git push origin --tags | |
| # Build Python Package | |
| - if: steps.next-version.outputs.version != '' | |
| uses: WIPACrepo/wipac-dev-py-build-action@v1.0 | |
| # -> uses the most recent git tag for versioning (aka the one made above) | |
| # -> creates 'dist/' files | |
| # GitHub Release | |
| - if: steps.next-version.outputs.version != '' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/* | |
| tag_name: v${{ steps.next-version.outputs.version }} # must match git tag above | |
| generate_release_notes: true | |
| # PyPI Release | |
| - if: steps.next-version.outputs.version != '' | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| user: __token__ | |
| password: ${{ secrets.PYPI_TOKEN }} |