diff --git a/.github/workflows/external-oibaf.yml b/.github/workflows/external-oibaf.yml new file mode 100644 index 0000000..af1ebe6 --- /dev/null +++ b/.github/workflows/external-oibaf.yml @@ -0,0 +1,44 @@ +name: PikaOS Oibaf Build-deps PPA Sync (External) + +on: + workflow_dispatch: + +jobs: + build: + runs-on: self-hosted + container: + image: ghcr.io/pikaos-linux/pika-package-container:latest + volumes: + - /proc:/proc + options: --privileged -it + + steps: + - uses: actions/checkout@v3 + + - name: Import GPG key + id: import_gpg + uses: crazy-max/ghaction-import-gpg@v5 + with: + gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.PASSPHRASE }} + + - name: Install SSH key + uses: shimataro/ssh-key-action@v2 + with: + key: ${{ secrets.SSH_KEY }} + name: id_rsa + known_hosts: ${{ secrets.KNOWN_HOSTS }} + if_key_exists: replace + + - name: Sync Repository + run: chmod +x ./external-oibaf.sh && ./external-oibaf.sh + + - name: Purge cache + uses: jakejarvis/cloudflare-purge-action@master + env: + # Zone is required by both authentication methods + CLOUDFLARE_ZONE: ${{ secrets.CLOUDFLARE_ZONE }} + + CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }} + PURGE_URLS: ${{ vars.PURGE_URLS }} + diff --git a/external-oibaf.sh b/external-oibaf.sh new file mode 100644 index 0000000..aee4a71 --- /dev/null +++ b/external-oibaf.sh @@ -0,0 +1,61 @@ +#! /bin/bash +set -e + +# Give correct perms to Apt version checker +chmod 755 ./ppp + +# Extranal Oibaf PPA MIRROR +mkdir -p ./output/external +cd ./output/external + +# temp +apt update +apt upgrade -y +# end of temp + +#Get rid of Pika sources to prevent conflicts +rm -rf /etc/apt/sources.list.d/pika* +rm -rf /etc/apt/preferences.d/*pika* + +# Get Extranal Oibaf PPA pool +echo 'deb [arch=amd64 trusted=yes] https://ppa.launchpadcontent.net/oibaf/graphics-drivers/ubuntu lunar main' | sudo tee /etc/apt/sources.list.d/external.list +apt update -y --allow-unauthenticated + +PPP=$(../../ppp https://ppa.pika-os.com/dists/lunar/external/binary-amd64/Packages https://ppa.launchpadcontent.net/oibaf/graphics-drivers/ubuntu/dists/lunar/main/binary-amd64/Packages.xz | tr ' ' '\n' | grep -E 'meson|16|15|spirv|directx-headers' | tr '\n' ' ') + +if [ ! -z "$PPP" ] +then + apt download $PPP -y --target-release 'o=LP-PPA-oibaf-graphics-drivers' +else + echo "Repos are synced" + exit 0 +fi + +# Return to Extranal Oibaf PPA MIRROR +cd ../ +mkdir -p ./output +find . -name \*.deb -exec cp -vf {} ./output \; + +# Sign the packages +dpkg-sig --sign builder ./output/*.deb + +# Pull down existing ppa repo db files etc +rsync -azP --exclude '*.deb' ferreo@direct.pika-os.com:/srv/www/pikappa/ ./output/repo + +# Check if the external component exists +if cat ./output/repo/conf/distributions | grep Components: | grep external +then + true +else + sed -i "s#Components:#Components: external#" ./output/repo/conf/distributions +fi + +apt remove reprepro -y +wget -nv https://launchpad.net/ubuntu/+archive/primary/+files/reprepro_5.3.0-1.4_amd64.deb +apt install -y ./reprepro_5.3.0-1.4_amd64.deb + +# Add the new package to the repo +reprepro -C external -V --basedir ./output/repo/ includedeb lunar ./output/*.deb + +# Push the updated ppa repo to the server +rsync -azP ./output/repo/ ferreo@direct.pika-os.com:/srv/www/pikappa/ \ No newline at end of file