continuwuity-bsd/.forgejo/workflows/build-freebsd-nightly.yml

67 lines
2.9 KiB
YAML

name: Build FreeBSD nightly package
concurrency:
group: "build-freebsd-nightly-${{ github.ref }}"
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *'
timezone: America/New_York
jobs:
build:
runs-on: freebsd-nightly
env:
PORTSDIR: ${{ forgejo.workspace }}/ports
steps:
- name: Clone
run: |
git clone --quiet --revision ${{ forgejo.sha }} ${{ forgejo.server_url }}/${{ forgejo.repository }}
rm continuwuity-bsd/freebsd/files/patch-continuwuity_vendor_*
- 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: Get dist version
id: distversion
working-directory: continuwuity-bsd/freebsd
run: |
make -f Makefile.nightly extract
cd work/continuwuity-nightly-/continuwuity/
echo "version=$(cargo metadata --frozen --no-deps --format-version 1 | jq -r ' .packages[] | select(.name=="conduwuit") | .version')" | tee $FORGEJO_OUTPUT
- name: Compute package version
id: pkgversion
working-directory: continuwuity-bsd/freebsd
env:
DISTVERSION: ${{ steps.distversion.outputs.version }}
run: |
echo "version=$(PORTEPOCH=$(date +%Y%m%d%H%M) make -f Makefile.nightly -VPKGVERSION)" | tee $FORGEJO_OUTPUT
echo "version_safe=$(PORTEPOCH=$(date +%Y%m%d%H%M) make -f Makefile.nightly -VPKGVERSION)" | sed s/,/-/ | tee -a $FORGEJO_OUTPUT
echo "epoch=$(date +%Y%m%d%H%M)" | tee -a $FORGEJO_OUTPUT
- name: Build
working-directory: continuwuity-bsd/freebsd
env:
DISTVERSION: ${{ steps.distversion.outputs.version }}
PORTEPOCH: ${{ steps.pkgversion.outputs.epoch }}
CPUTYPE: haswell
run: |
mv work/continuwuity-nightly- work/continuwuity-nightly-${{ steps.distversion.outputs.version }}
make -f Makefile.nightly package
- name: Upload package
run: |
curl --fail-with-body --upload-file continuwuity-bsd/freebsd/work/pkg/continuwuity-nightly-${{ steps.pkgversion.outputs.version }}.pkg --header "Authorization: Bearer ${{ secrets.PUSH_TOKEN }}" ${{ forgejo.server_url }}/api/packages/katie/generic/continuwuity-freebsd-nightly/${{ forgejo.ref_name }}-${{ forgejo.run_number }}/continuwuity-nightly-${{ steps.pkgversion.outputs.version_safe }}-amd64-haswell.pkg
- name: Copy package to repo
run: |
echo "${{ secrets.DEPLOY_KEY }}" > deploy.key
chmod 600 deploy.key
rsync -P -e "ssh -i deploy.key -o StrictHostKeyChecking=no" continuwuity-bsd/freebsd/work/pkg/continuwuity-nightly-${{ steps.pkgversion.outputs.version }}.pkg deploy@lernie.hq.kat5.dev:/usr/local/www/pkg.kat5.dev/continuwuity-nightly/FreeBSD:15:amd64