This commit is contained in:
parent
fec208a7cd
commit
1c11b31a64
46
.github/workflows/external-nvidia.yml
vendored
Normal file
46
.github/workflows/external-nvidia.yml
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
name: PikaOS Nvidia Repo 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-nvidia.sh && ./external-nvidia.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 }}
|
||||
|
67
external-nvidia.sh
Normal file
67
external-nvidia.sh
Normal file
@ -0,0 +1,67 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
|
||||
# Give correct perms to Apt version checker
|
||||
chmod 755 ./ppp
|
||||
|
||||
# Extranal Nvidia 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 Nvidia pool
|
||||
echo 'deb [trusted=yes] https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu/ lunar main' | sudo tee /etc/apt/sources.list.d/external.list
|
||||
|
||||
PPP32=$(../../ppp https://ppa.pika-os.com/dists/lunar/external/binary-i386/Packages https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu/dists/lunar/main/binary-i386/Packages.xz)
|
||||
if [ ! -z "$PPP32" ]
|
||||
then
|
||||
dpkg --add-architecture i386
|
||||
apt update -o APT::Architecture="i386" -o APT::Architectures="i386" -y --allow-unauthenticated
|
||||
apt download $PPP32 -o APT::Architecture="i386" -o APT::Architectures="i386" -y
|
||||
rm -rfv ./*all.deb
|
||||
else
|
||||
echo "i386 Repos are synced"
|
||||
fi
|
||||
|
||||
PPP64=$(../../ppp https://ppa.pika-os.com/dists/lunar/external/binary-amd64/Packages https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu/dists/lunar/main/binary-amd64/Packages.xz)
|
||||
if [ ! -z "$PPP64" ]
|
||||
then
|
||||
apt update -o APT::Architecture="amd64" -o APT::Architectures="amd64" -y --allow-unauthenticated
|
||||
apt download $PPP64 -o APT::Architecture="amd64" -o APT::Architectures="amd64" -y
|
||||
else
|
||||
echo "AMD64 Repos are synced"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Return to Extranal Nvidia 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/
|
Loading…
Reference in New Issue
Block a user