61 lines
2.3 KiB
YAML
61 lines
2.3 KiB
YAML
on:
|
|
push:
|
|
tags:
|
|
- "*-v*"
|
|
|
|
env:
|
|
REGISTRY_ENDPOINT: host.containers.internal:5000
|
|
|
|
jobs:
|
|
pre-run:
|
|
runs-on: runner-latest
|
|
steps:
|
|
- uses: https://forge.karnov.club/marc/push-status-to-discord-action@main
|
|
with:
|
|
webhook-url: ${{secrets.DISCORD_WEBHOOK_URL}}
|
|
status: "Started"
|
|
init: true
|
|
build-images:
|
|
needs: [pre-run]
|
|
runs-on: runner-latest
|
|
strategy:
|
|
matrix:
|
|
image-name: ['ubuntu-2204', 'debian-12.6-slim']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.12
|
|
- name: Login to Registry
|
|
run: podman login -u ${{ secrets.REGISTRY_USER }} -p ${{ secrets.REGISTRY_TOKEN }} ${{ env.REGISTRY_ENDPOINT }}
|
|
- name: Set image metadata
|
|
id: image-metadata
|
|
run: |
|
|
echo "image-tag=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
|
echo "full-image-name=${{ matrix.image-name }}:$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
|
- name: Build image
|
|
run: python ./build_image.py ${{ steps.image-metadata.outputs.full-image-name }} ./images/${{ matrix.image-name }}/Dockerfile
|
|
- name: Tag image as latest
|
|
run: podman tag ${{ steps.image-metadata.outputs.full-image-name }} ${{ matrix.image-name }}:latest
|
|
- name: List images
|
|
run: podman image ls
|
|
- name: Push tagged image to registry
|
|
run: |
|
|
podman push ${{ steps.image-metadata.outputs.full-image-name }} ${{ env.REGISTRY_ENDPOINT }}/forge-runners/${{ steps.image-metadata.outputs.full-image-name }}
|
|
podman push ${{ steps.image-metadata.outputs.full-image-name }} ${{ env.REGISTRY_ENDPOINT }}/forge-runners/${{ matrix.image-name }}:latest
|
|
post-run:
|
|
runs-on: runner-latest
|
|
needs: [build-images]
|
|
steps:
|
|
- uses: https://forge.karnov.club/marc/push-status-to-discord-action@main
|
|
if: ${{success()}}
|
|
with:
|
|
webhook-url: ${{secrets.DISCORD_WEBHOOK_URL}}
|
|
status: "Success"
|
|
variant: "success"
|
|
- uses: https://forge.karnov.club/marc/push-status-to-discord-action@main
|
|
if: ${{failure()}}
|
|
with:
|
|
webhook-url: ${{secrets.DISCORD_WEBHOOK_URL}}
|
|
status: "Failure"
|
|
variant: "failure"
|