continuwuity-bsd/.forgejo/workflows/update.yml
2026-07-20 03:49:02 -04:00

108 lines
4.3 KiB
YAML

name: Update Makefiles
on:
workflow_dispatch:
push:
paths:
- .forgejo/workflows/update.yml
- update.py
- release.toml
jobs:
freebsd:
runs-on: freebsd
outputs:
branch: ${{ steps.update.outputs.branch }}
version: ${{ steps.update.outputs.version }}
steps:
- name: Clone
run: |
git clone --quiet -c http.extraHeader="Authorization: token ${{ forgejo.token }}" --revision ${{ forgejo.sha }} ${{ forgejo.server_url }}/${{ forgejo.repository }} continuwuity-bsd
git clone --quiet -c http.extraHeader="Authorization: token ${{ forgejo.token }}" ${{ forgejo.server_url }}/${{ forgejo.repository }} continuwuity-bsd/local
- name: Clone ports tree
run: |
git clone --quiet --depth 1 --filter blob:none --sparse https://code.kat5.dev/mirrors/freebsd-ports ports
cd ports
git sparse-checkout set Mk/ Templates/ Keywords/ Tools/
- name: Run update tool
id: update
env:
PORTSDIR: ${{ forgejo.workspace }}/ports
DISTDIR: ${{ forgejo.workspace }}/distfiles
run: |
cd continuwuity-bsd
uv run update.py start
- name: Push
run: |
cd continuwuity-bsd/local
git remote set-url origin "https://forgejo:${{ forgejo.token }}@code.kat5.dev/${{ forgejo.repository }}.git"
git push --set-upstream origin ${{ steps.update.outputs.branch }}
openbsd:
runs-on: openbsd
needs: [freebsd]
steps:
- name: Clone
run: |
git clone --quiet -c http.extraHeader="Authorization: token ${{ forgejo.token }}" --revision ${{ forgejo.sha }} ${{ forgejo.server_url }}/${{ forgejo.repository }} continuwuity-bsd
git clone --quiet -c http.extraHeader="Authorization: token ${{ forgejo.token }}" --branch ${{ needs.freebsd.outputs.branch }} ${{ forgejo.server_url }}/${{ forgejo.repository }} continuwuity-bsd/local
- name: Clone ports tree
run: |
git clone --quiet --depth 1 --filter=blob:none --sparse https://code.kat5.dev/mirrors/openbsd-ports ports
cd ports
git sparse-checkout set archivers/bzip2/ infrastructure/
- name: Run update tool
id: update
env:
PORTSDIR: ${{ forgejo.workspace }}/ports
UV_NO_PROGRESS: 1
run: |
cd continuwuity-bsd
uv run update.py openbsd --version ${{ needs.freebsd.outputs.version }}
- name: Push
run: |
cd continuwuity-bsd/local
git remote set-url origin "https://forgejo:${{ forgejo.token }}@code.kat5.dev/${{ forgejo.repository }}.git"
git push
netbsd:
runs-on: netbsd
needs: [freebsd, openbsd]
steps:
- name: Clone
run: |
git clone --quiet -c http.extraHeader="Authorization: token ${{ forgejo.token }}" --revision ${{ forgejo.sha }} ${{ forgejo.server_url }}/${{ forgejo.repository }} continuwuity-bsd
git clone --quiet -c http.extraHeader="Authorization: token ${{ forgejo.token }}" --branch ${{ needs.freebsd.outputs.branch }} ${{ forgejo.server_url }}/${{ forgejo.repository }} continuwuity-bsd/local
- name: Clone pkgsrc
run: |
git clone --quiet --depth 1 --filter=blob:none --sparse https://code.kat5.dev/mirrors/netbsd-pkgsrc pkgsrc
cd pkgsrc
git sparse-checkout set mk/ pkgtools/
- name: Run update tool
id: update
env:
PORTSDIR: ${{ forgejo.workspace }}/pkgsrc
UV_NO_PROGRESS: 1
run: |
cd continuwuity-bsd
uv run update.py netbsd --version ${{ needs.freebsd.outputs.version }}
- name: Push
run: |
cd continuwuity-bsd/local
git remote set-url origin "https://forgejo:${{ forgejo.token }}@code.kat5.dev/${{ forgejo.repository }}.git"
git push
- name: Create pull request
run: |
curl -s -X POST ${{ forgejo.server_url}}/api/v1/repos/${{ forgejo.repository }}/pulls \
-H "Accept: application/json" \
-H "Authorization: token ${{ secrets.WRITE_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"base": "main", "head": "${{ needs.freebsd.outputs.branch }}", "title": "Update to ${{ needs.freebsd.outputs.version }}"}'