Skip to content

Scheduled AUR package update Workflow #22

Scheduled AUR package update Workflow

Scheduled AUR package update Workflow #22

Workflow file for this run

name: Scheduled AUR package update Workflow
on:
workflow_dispatch: {}
schedule:
- cron: "45 12 15 * *"
jobs:
update:
name: "Update repository"
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- name: Store the SSH key
run: |
echo "${{ secrets.MY_SSH_KEY }}" | install -Dm600 /dev/stdin /root/.ssh/id_rsa
- name: Get time for cache
id: cache_time
run: echo "::set-output name=time::$(date +%F-%T)"
- name: Set up cache
uses: actions/cache@master
with:
path: /var/cache/pacman/pkg
key: pacman-cache-x86_64-${{ steps.cache_time.outputs.time }}
restore-keys: pacman-cache-x86_64-
- name: Install dependencies
run: |
pacman -Syu --needed --noconfirm && \
pacman -S --needed --noconfirm git binutils pacman-contrib openssh rsync jq
- name: Checkout Repository
uses: actions/checkout@v2
- name: Update if necessary
env:
GIT_SSH_COMMAND: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
run: |
current=$(grep -P "^pkgver" PKGBUILD | cut -d= -f2)
latest=$(curl --silent "https://api.github.com/repos/karlstav/cava/releases/latest" | jq -r .tag_name)
aurRepoDir=/tmp/cava
githubRepoDir="${PWD}"
buildDir="/tmp/build"
echo "Previous version: ${current}"
echo "New version: ${latest}"
[[ "${current}" == "${latest}" ]] && exit 0
git config --global --add safe.directory /__w/aur-cava/aur-cava
git config --global --add safe.directory ${GITHUB_WORKSPACE}
git config --global --add safe.directory ${aurRepoDir}
git config --global --add safe.directory ${githubRepoDir}
git config --global user.name ${{ secrets.MY_GIT_NAME }}
git config --global user.email ${{ secrets.MY_GIT_EMAIL }}
git clone ssh:https://[email protected]/cava.git ${aurRepoDir}
rsync --progress --delete -r --exclude={'*.gz','*.xz','.github','pkg','src','.git'} ${githubRepoDir}/ ${buildDir}/
cd ${buildDir}
useradd makepkg
chown makepkg:root . -R
sed "/^pkgver=/s/.*/pkgver=${latest}/" -i PKGBUILD
sed "/^pkgrel=/s/.*/pkgrel=1/" -i PKGBUILD
su makepkg -c "updpkgsums"
su makepkg -c "makepkg --printsrcinfo" > .SRCINFO
rsync --progress --delete -r --exclude={'*.gz','*.xz','.github','pkg','src','.git'} ${buildDir}/ ${githubRepoDir}/
rsync --progress --delete -r --exclude={'*.gz','*.xz','.github','pkg','src','.git'} ${buildDir}/ ${aurRepoDir}/
cd ${aurRepoDir}
git add .
git commit -m "Update cava to v${latest}"
git push origin master
cd ${githubRepoDir}
git add .
git commit -m "Update cava to v${latest}"
git push origin master