tox #1012
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: tox | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
branches: | |
- "main" | |
release: | |
types: [published] | |
schedule: | |
- cron: "0 0 * * *" | |
workflow_call: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
tox: | |
uses: ansible/team-devtools/.github/workflows/tox.yml@main | |
build-image: | |
runs-on: ${{ matrix.builder }} | |
name: ${{ matrix.name }} | |
needs: tox | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- builder: devtools-multiarch-builder | |
platform: linux/amd64 | |
name: amd64 | |
- builder: devtools-arm64-runner | |
platform: linux/arm64 | |
name: arm64 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build the container image for ${{ matrix.platform }} and test it | |
uses: ./.github/actions/build-test | |
# this needs to be passed only when on release pipeline: | |
with: | |
registry: ghcr.io | |
push: ${{ github.event_name == 'release' && github.event.action == 'published' }} | |
publish-image: | |
environment: release # approval | |
runs-on: ubuntu-latest | |
needs: build-image | |
if: github.event_name == 'release' && github.event.action == 'published' | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Push final manifest to ghcr.io | |
uses: ./.github/actions/merge-release | |
with: | |
registry: ghcr.io | |
pypi: | |
name: Publish to PyPI registry | |
needs: build-image | |
if: github.event_name == 'release' && github.event.action == 'published' | |
environment: release # approval | |
runs-on: ubuntu-22.04 | |
permissions: | |
id-token: write | |
env: | |
FORCE_COLOR: 1 | |
PY_COLORS: 1 | |
TOXENV: pkg | |
steps: | |
- name: Switch to using Python 3.10 by default | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Install tox | |
run: python3 -m pip install --user "tox>=4.0.0" | |
- name: Check out src from Git | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # needed by setuptools-scm | |
submodules: true | |
- name: Build dists | |
run: python3 -m tox | |
- name: Publish to pypi.org | |
if: >- # "create" workflows run separately from "push" & "pull_request" | |
github.event_name == 'release' | |
uses: pypa/gh-action-pypi-publish@release/v1 |