diff --git a/.github/workflows/external-sys76.yml b/.github/workflows/external-sys76.yml new file mode 100644 index 0000000..449e197 --- /dev/null +++ b/.github/workflows/external-sys76.yml @@ -0,0 +1,44 @@ +name: PikaOS System76 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-sys76.sh && ./external-sys76.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-sys76.sh b/external-sys76.sh index 49b7d70..7d0cee3 100644 --- a/external-sys76.sh +++ b/external-sys76.sh @@ -1,14 +1,35 @@ #! /bin/bash set -e -# External Sys76 PPA MIRROR -mkdir -p ./output/rocm -cd ./output/rocm -# Get External Sys76 PPA pool -echo 'deb [trusted=yes] https://ppa.launchpadcontent.net/system76-dev/pre-stable/ubuntu lunar main' | sudo tee /etc/apt/sources.list.d/sys76.list -apt update -y -apt download -y -# Return to External Sys76 PPA MIRROR +# Give correct perms to Apt version checker +chmod 755 ./ppp + +# Extranal System76 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 System76 PPA pool +echo 'deb [arch=amd64 trusted=yes] https://ppa.launchpadcontent.net/system76-dev/pre-stable/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/system76-dev/pre-stable/ubuntu/dists/lunar/main/binary-amd64/Packages.xz | tr '\n' ' ') +if [[ ! -z $PPP ]] +then + apt download $() -y +else + echo "Repos are synced" + exit 0 +fi +# Return to Extranal System76 PPA MIRROR cd ../ mkdir -p ./output find . -name \*.deb -exec cp -vf {} ./output \; @@ -19,16 +40,16 @@ 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 rocm component exists -if cat ./output/repo/conf/distributions | grep Components: | grep rocm +# Check if the external component exists +if cat ./output/repo/conf/distributions | grep Components: | grep external then true else - sed -i "s#Components:#Components: rocm#" ./output/repo/conf/distributions + sed -i "s#Components:#Components: external#" ./output/repo/conf/distributions fi # Add the new package to the repo -reprepro -C rocm -V --basedir ./output/repo/ includedeb lunar ./output/*.deb +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/