Reduce number of layers in main container image #1406
Workflow file for this run
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 }} | |
# uses same runner for image building, but devspace image builds faster | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- builder: devtools-multiarch-builder | |
platform: linux/amd64 | |
name: amd64 | |
- builder: ubuntu-24.04-arm64-2core | |
# 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: Prune docker system | |
run: sudo ./final/docker-prune.sh | |
- 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 | |
- 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 | |
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: | |
- build-image | |
- 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 }} |