Add container build #7
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: Main | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [opened, synchronize, reopened] | |
jobs: | |
quality: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pre-commit | |
key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} | |
- name: Set up the environment | |
uses: ./.github/actions/setup-pdm-env | |
- name: Run checks | |
run: make check | |
tox: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.12'] | |
fail-fast: false | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
- name: Set up python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install PDM | |
uses: pdm-project/setup-pdm@v3 | |
with: | |
python-version: 3.12 | |
cache: true | |
- name: Install dependencies | |
run: pdm install | |
shell: bash | |
- name: Install tox | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install tox tox-gh-actions | |
- name: Test with tox | |
run: tox | |
check-docs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
- name: Set up the environment | |
uses: ./.github/actions/setup-pdm-env | |
- name: Check if documentation can be built | |
run: pdm run mkdocs build -s | |
container: | |
needs: | |
- quality | |
- tox | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Log into registry ${{ env.REGISTRY }} | |
if: github.event_name != 'pull_request' | |
uses: redhat-actions/podman-login@v1 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract Docker metadata | |
id: meta | |
uses: docker/[email protected] | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
- name: Build image | |
id: build-image | |
uses: redhat-actions/buildah-build@v2 | |
with: | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
tls-verify: true | |
extra-args: | | |
--squash | |
containerfiles: | | |
Dockerfile | |
- name: Echo Outputs | |
run: | | |
echo "Image: ${{ steps.build-image.outputs.image }}" | |
echo "Tags: ${{ steps.build-image.outputs.tags }}" | |
echo "Tagged Image: ${{ steps.build-image.outputs.image-with-tag }}" | |
- name: Check images created | |
run: buildah images | |
- name: Push To Container Registry | |
id: push-to-container-registry | |
uses: redhat-actions/push-to-registry@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
tags: ${{ steps.build-image.outputs.tags }} | |
- name: Print image url | |
run: echo "Image pushed to ${{ steps.push-to-container-registry.outputs.registry-paths }}" |