From 8ad1bfd423fe5606fb9eb3b9ef6c341988f56035 Mon Sep 17 00:00:00 2001 From: "Ward Nakchbandi (Cosmic Fusion)" <83735213+CosmicFusion@users.noreply.github.com> Date: Mon, 28 Aug 2023 14:41:57 +0300 Subject: [PATCH] --- .github/workflows/external-misc.yml | 46 +++++++++++++++++ external-misc.sh | 78 +++++++++++++++++++++++++++++ external-xtradeb.sh | 2 +- 3 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/external-misc.yml create mode 100644 external-misc.sh diff --git a/.github/workflows/external-misc.yml b/.github/workflows/external-misc.yml new file mode 100644 index 0000000..ddd3b9d --- /dev/null +++ b/.github/workflows/external-misc.yml @@ -0,0 +1,46 @@ +name: PikaOS Misc PPAs Sync (External) + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' + +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-misc.sh && ./external-misc.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-misc.sh b/external-misc.sh new file mode 100644 index 0000000..cea2f02 --- /dev/null +++ b/external-misc.sh @@ -0,0 +1,78 @@ +#! /bin/bash +set -e + + +SHOULD_EXIT=0 + +# Give correct perms to Apt version checker +chmod 755 ./ppp + +# Extranal XtraDEB 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 Wasta Cinnamon PPA pool +echo 'deb [arch=amd64 trusted=yes] https://ppa.launchpadcontent.net/wasta-linux/cinnamon-testing/ubuntu jammy main' | sudo tee /etc/apt/sources.list.d/external.list +apt update -y --allow-unauthenticated + +WASTA_PPP=$(../../ppp https://ppa.pika-os.com/dists/lunar/external/binary-amd64/Packages https://ppa.launchpadcontent.net/wasta-linux/cinnamon-testing/ubuntu/dists/jammy/main/binary-amd64/Packages.xz | tr ' ' '\n' | grep -E 'mintinstall|warpinator|webapp-manager|mint-common|mint-translations' | tr '\n' ' ') + +if [ ! -z "$WASTA_PPP" ] +then + apt download $WASTA_PPP -y +else + echo "Wasta Repos are synced" + export SHOULD_EXIT=1 +fi + +rm -rf /etc/apt/sources.list.d/external.list + +# Get Extranal Papirus PPA pool +echo 'deb [arch=amd64 trusted=yes] https://ppa.launchpadcontent.net/papirus/papirus/ubuntu lunar main' | sudo tee /etc/apt/sources.list.d/external.list +apt update -y --allow-unauthenticated + +PAPIRUS_PPP=$(../../ppp https://ppa.pika-os.com/dists/lunar/external/binary-amd64/Packages https://ppa.launchpadcontent.net/papirus/papirus/ubuntu/dists/lunar/main/binary-amd64/Packages.xz) +if [ ! -z "$PAPIRUS_PPP" ] +then + apt download $PAPIRUS_PPP -y +else + echo "Papirus Repos are synced" + if [[ $SHOULD_EXIT == 1 ]] + then + exit 0 + fi +fi + +# Return to Extranal 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 + +# 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/ diff --git a/external-xtradeb.sh b/external-xtradeb.sh index 88d9780..f6a6830 100644 --- a/external-xtradeb.sh +++ b/external-xtradeb.sh @@ -21,7 +21,7 @@ rm -rf /etc/apt/preferences.d/*pika* echo 'deb [arch=amd64 trusted=yes] https://ppa.launchpadcontent.net/xtradeb/apps/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/xtradeb/apps/ubuntu/dists/lunar/main/binary-amd64/Packages.xz ./ppp https://ppa.pika-os.com/dists/lunar/external/binary-amd64/Packages https://ppa.launchpadcontent.net/system76-dev/apps/ubuntu/dists/lunar/main/binary-amd64/Packages.xz | tr ' ' '\n' | grep chromium | tr '\n' ' ') +PPP=$(../../ppp https://ppa.pika-os.com/dists/lunar/external/binary-amd64/Packages https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu/dists/lunar/main/binary-amd64/Packages.xz | tr ' ' '\n' | grep chromium | tr '\n' ' ') if [ ! -z "$PPP" ] then