runner-images/.forgejo/workflows/ci.yml
Marc Cataford 35080fd3b0
Some checks failed
/ pre-run (push) Successful in 23s
/ post-run (push) Has been cancelled
/ build-images (ubuntu-2204) (push) Has been cancelled
ci: replace shell scripts with python util
2024-07-28 23:22:47 -04:00

61 lines
2.2 KiB
YAML

on:
push:
tags:
- "*-v*"
env:
REGISTRY_ENDPOINT: host.containers.internal:5000
jobs:
pre-run:
runs-on: ubuntu-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: ubuntu-latest
strategy:
matrix:
image-name: ['ubuntu-2204']
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: ubuntu-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"