gha: replace build-test composite action with a reusable workflow #1376
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 | |
ee: | |
uses: ./.github/workflows/.build-image.yml | |
publish-image: | |
environment: release # approval | |
runs-on: ubuntu-latest | |
needs: | |
- ee | |
# - tox | |
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 | |
devspaces: | |
runs-on: devtools-multiarch-builder | |
# uses same runner for image building | |
needs: | |
- ee | |
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 devspaces image | |
uses: ./.github/actions/build-release | |
with: | |
publish: "{{ github.event_name == 'release' && github.event.action == 'published' && 'true' || 'false' }}" | |
pypi: | |
name: Publish to PyPI registry | |
needs: | |
- ee | |
# - tox | |
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 | |
forum_post: | |
if: github.event_name == 'release' && github.event.action == 'published' | |
needs: | |
- pypi | |
- publish-image | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Retreive the forum post script from team-devtools | |
run: curl -O https://raw.githubusercontent.com/ansible/team-devtools/main/.github/workflows/forum_post.py | |
- name: Run the forum post script | |
run: python3 forum_post.py ${{ github.event.repository.full_name }} ${{ github.event.release.tag_name }} ${{ secrets.FORUM_KEY }} ${{ secrets.FORUM_USER }} |