Skip to content

Nightly Packaging

Nightly Packaging #930

Workflow file for this run

name: Nightly Packaging
on:
workflow_dispatch:
push:
branches:
- nightly
schedule:
- cron: '0 6 * * *'
jobs:
repo:
name: Update Repository Files
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.PKG_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PKG_GPG_PASSPHRASE }}
- uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.WWW_SSH_KEY }}
ssh-host: www.thirdlaw.tech
- name: Upload artifacts
run: |
gpg --armor --output key.gpg --export ${{ steps.import_gpg.outputs.keyid }}
rsync -e ssh key.gpg tools-for-build/cando.sh tools-for-build/clasp.sh tools-for-build/deb-cando.sh tools-for-build/deb-clasp.sh tools-for-build/arch-cando.sh tools-for-build/arch-clasp.sh ${{ secrets.WWW_USERNAME }}@www.thirdlaw.tech:/usr/local/www/apache24/data/pkg/
jammy_clasp:
name: Build Jammy Clasp
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update version
run: |
sudo apt-get update
sudo apt install -y sbcl
./tools-for-build/nightly-version-bump
rm -rf dependencies extensions src/lisp/kernel/contrib src/lisp/modules/asdf src/mps src/bdwgc src/libatomic_ops
- name: Build Ubuntu packages
uses: jtdor/build-deb-action@v1
with:
buildpackage-opts: --build=binary --build-profiles=nocando
docker-image: ubuntu:jammy
extra-build-deps: ca-certificates netbase
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: jammy_clasp
path: debian/artifacts/*.deb
jammy_cando:
name: Build Jammy Cando
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update version
run: |
sudo apt-get update
sudo apt install -y sbcl
./tools-for-build/nightly-version-bump --extensions=cando,seqan-clasp
rm -rf dependencies extensions src/lisp/kernel/contrib src/lisp/modules/asdf src/mps src/bdwgc src/libatomic_ops
- name: Build Ubuntu packages
uses: jtdor/build-deb-action@v1
with:
buildpackage-opts: --build=binary --build-profiles=noclasp
docker-image: ubuntu:jammy
extra-build-deps: ca-certificates netbase
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: jammy_cando
path: debian/artifacts/*.deb
jammy_repo:
name: Update Jammy Repository
runs-on: ubuntu-latest
needs:
- jammy_clasp
- jammy_cando
steps:
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.PKG_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PKG_GPG_PASSPHRASE }}
- uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.WWW_SSH_KEY }}
ssh-host: www.thirdlaw.tech
- uses: actions/download-artifact@v3
with:
name: jammy_clasp
path: jammy
- uses: actions/download-artifact@v3
with:
name: jammy_cando
path: jammy
- name: Generate Repository Index
run: |
cd jammy
dpkg-scanpackages --multiversion . > Packages
gzip -k -f Packages
apt-ftparchive release . > Release
gpg --default-key ${{ steps.import_gpg.outputs.keyid }} -abs --output Release.gpg Release
gpg --default-key ${{ steps.import_gpg.outputs.keyid }} --clearsign --output InRelease Release
- name: Upload artifacts
run: |
rsync -e ssh --delete-after --recursive jammy ${{ secrets.WWW_USERNAME }}@www.thirdlaw.tech:/usr/local/www/apache24/data/pkg/
bookworm_clasp:
name: Build Bookworm Clasp
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update version
run: |
sudo apt-get update
sudo apt install -y sbcl
./tools-for-build/nightly-version-bump
echo "(:skip-sync t)" > config.sexp
- name: Build Debian packages
uses: jtdor/build-deb-action@v1
with:
buildpackage-opts: --build=binary --build-profiles=nocando
docker-image: debian:bookworm
extra-build-deps: ca-certificates netbase g++-12
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bookworm_clasp
path: debian/artifacts/*.deb
bookworm_cando:
name: Build Bookworm Cando
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Update version
run: |
sudo apt-get update
sudo apt install -y sbcl
./tools-for-build/nightly-version-bump --extensions=cando,seqan-clasp
echo "(:skip-sync t)" > config.sexp
- name: Build Debian packages
uses: jtdor/build-deb-action@v1
with:
buildpackage-opts: --build=binary --build-profiles=noclasp
docker-image: debian:bookworm
extra-build-deps: ca-certificates netbase g++-12
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bookworm_cando
path: debian/artifacts/*.deb
bookworm_repo:
name: Update Bookworm Repository
runs-on: ubuntu-latest
needs:
- bookworm_clasp
- bookworm_cando
steps:
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.PKG_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PKG_GPG_PASSPHRASE }}
- uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.WWW_SSH_KEY }}
ssh-host: www.thirdlaw.tech
- uses: actions/download-artifact@v3
with:
name: bookworm_clasp
path: bookworm
- uses: actions/download-artifact@v3
with:
name: bookworm_cando
path: bookworm
- name: Generate Repository Index
run: |
cd bookworm
dpkg-scanpackages --multiversion . > Packages
gzip -k -f Packages
apt-ftparchive release . > Release
gpg --default-key ${{ steps.import_gpg.outputs.keyid }} -abs --output Release.gpg Release
gpg --default-key ${{ steps.import_gpg.outputs.keyid }} --clearsign --output InRelease Release
- name: Upload artifacts
run: |
rsync -e ssh --delete-after --recursive bookworm ${{ secrets.WWW_USERNAME }}@www.thirdlaw.tech:/usr/local/www/apache24/data/pkg/
arch_clasp:
name: Build Arch Clasp
runs-on: ubuntu-latest
container:
image: ghcr.io/yitzchak/archlinux-makepkg:latest
steps:
- name: Set permissions and update packages
run: |
sudo chown -R build: .
sudo chown -R build: /github/home
sudo pacman -Syu --noconfirm
- name: Build Arch packages
run: |
echo -e "${{ secrets.PKG_GPG_PRIVATE_KEY }}" | gpg --import --yes --batch
echo "allow-preset-passphrase" >~/.gnupg/gpg-agent.conf
gpg-connect-agent reloadagent /bye
echo -e "${{ secrets.PKG_GPG_PASSPHRASE }}" | /usr/lib/gnupg/gpg-preset-passphrase --preset "${{ secrets.PKG_GPG_KEYGRIP }}"
wget -O PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=clasp-cl-git
wget -O pkgver.lisp https://aur.archlinux.org/cgit/aur.git/plain/pkgver.lisp?h=clasp-cl-git
sed -i "s/clasp\.git/clasp\.git#commit=${{ github.sha }}/g" PKGBUILD
makepkg --noconfirm --syncdeps --sign
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: arch_clasp
path: |
clasp*.zst
clasp*.sig
arch_cando:
name: Build Arch Cando
runs-on: ubuntu-latest
container:
image: ghcr.io/yitzchak/archlinux-makepkg:latest
steps:
- name: Set permissions and update packages
run: |
sudo chown -R build: .
sudo chown -R build: /github/home
sudo pacman -Syu --noconfirm
- name: Build Arch packages
run: |
echo -e "${{ secrets.PKG_GPG_PRIVATE_KEY }}" | gpg --import --yes --batch
echo "allow-preset-passphrase" >~/.gnupg/gpg-agent.conf
gpg-connect-agent reloadagent /bye
echo -e "${{ secrets.PKG_GPG_PASSPHRASE }}" | /usr/lib/gnupg/gpg-preset-passphrase --preset "${{ secrets.PKG_GPG_KEYGRIP }}"
wget -O PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=cando-git
wget -O pkgver.lisp https://aur.archlinux.org/cgit/aur.git/plain/pkgver.lisp?h=cando-git
sed -i "s/clasp\.git/clasp\.git#commit=${{ github.sha }}/g" PKGBUILD
makepkg --noconfirm --syncdeps --sign
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: arch_cando
path: |
cando*.zst
cando*.sig
arch_repo:
name: Update Arch Repository
runs-on: ubuntu-latest
container:
image: archlinux:latest
needs:
- arch_clasp
- arch_cando
steps:
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.PKG_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PKG_GPG_PASSPHRASE }}
- uses: actions/download-artifact@v3
with:
name: arch_clasp
path: arch
- uses: actions/download-artifact@v3
with:
name: arch_cando
path: arch
- name: Generate Repository Index
run: |
cd arch
repo-add --key ${{ steps.import_gpg.outputs.keyid }} --sign thirdlaw.db.tar.gz *.pkg.tar.zst
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: arch_repo
path: arch
arch_repo_upload:
name: Upload Arch Repository
runs-on: ubuntu-latest
needs:
- arch_repo
steps:
- uses: kielabokkie/ssh-key-and-known-hosts-action@v1
with:
ssh-private-key: ${{ secrets.WWW_SSH_KEY }}
ssh-host: www.thirdlaw.tech
- uses: actions/download-artifact@v3
with:
name: arch_repo
path: arch
- name: Upload artifacts
run: |
rsync -e ssh --delete-after --recursive arch ${{ secrets.WWW_USERNAME }}@www.thirdlaw.tech:/usr/local/www/apache24/data/pkg/