Use Forgejo workflows and registry
All checks were successful
publish-latest / docker (push) Successful in 9s
ci / test (3.10) (push) Successful in 19s
ci / test (3.12) (push) Successful in 19s
ci / test (3.13) (push) Successful in 19s
ci / container (push) Successful in 7s
publish-image / docker (push) Successful in 8s

This commit is contained in:
Johan Lundberg 2026-07-30 23:35:14 +02:00
parent dbc7464b58
commit e7bde2b3f4
12 changed files with 134 additions and 40 deletions

47
.forgejo/workflows/ci.yml Normal file
View file

@ -0,0 +1,47 @@
name: ci
on:
push:
pull_request:
jobs:
test:
runs-on: docker
container:
image: catthehacker/ubuntu:act-22.04
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- run: python -m pip install --upgrade pip
- run: python -m pip install -r requirements.txt
- run: python -m py_compile wlc_monitor.py
- run: python -m unittest discover -v
- run: python -m pip check
container:
runs-on: docker
container:
image: catthehacker/ubuntu:act-22.04
volumes:
- /certs/client:/certs/client
env:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: "1"
DOCKER_CERT_PATH: /certs/client
steps:
- uses: actions/checkout@v4
- uses: docker/build-push-action@v6
with:
context: .
target: prod
push: false
tags: wlc-monitor:test

View file

@ -0,0 +1,42 @@
name: publish-latest
on:
push:
branches: [main]
jobs:
docker:
runs-on: docker
container:
image: catthehacker/ubuntu:act-22.04
volumes:
- /certs/client:/certs/client
env:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: "1"
DOCKER_CERT_PATH: /certs/client
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: git.snakedesert.se
# Forgejo exposes github.* compatibility aliases; this matches the
# established Porchlight workflow and works with older runners.
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/metadata-action@v5
id: meta
with:
images: git.snakedesert.se/${{ github.repository }}
tags: |
type=raw,value=edge
type=sha,format=short
- uses: docker/build-push-action@v6
with:
context: .
target: prod
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View file

@ -0,0 +1,43 @@
name: publish-image
on:
push:
tags: ['v*']
jobs:
docker:
runs-on: docker
container:
image: catthehacker/ubuntu:act-22.04
volumes:
- /certs/client:/certs/client
env:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: "1"
DOCKER_CERT_PATH: /certs/client
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: git.snakedesert.se
# Forgejo exposes github.* compatibility aliases; this matches the
# established Porchlight workflow and works with older runners.
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/metadata-action@v5
id: meta
with:
images: git.snakedesert.se/${{ github.repository }}
tags: |
type=ref,event=tag
type=semver,pattern={{version}}
type=raw,value=latest
- uses: docker/build-push-action@v6
with:
context: .
target: prod
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}