.mirror/action.yml

59 lines
2.1 KiB
YAML

name: 'Mirror'
description: 'Test and Mirror AUR Packages'
inputs:
pkgbase:
description: 'The pkgbase from the AUR.'
required: false
ssh_key:
description: 'The base64-part of the private key to upload to the AUR.'
required: true
runs:
using: "composite"
steps:
- name: Test AUR package
uses: docker://docker.io/library/archlinux:base-devel
with:
entrypoint: bash
args: |
-exuo pipefail -c '
pacman -Syu --noconfirm git
useradd -m user
echo "user ALL=(ALL:ALL) NOPASSWD: ALL" >/etc/sudoers.d/user
sudo -u user -- bash -c "cd ~ && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si --noconfirm"
echo "#!/bin/bash -ex" >/usr/local/bin/yay.sh
echo "sudo -u user -- yay \"\${@}\"" >>/usr/local/bin/yay.sh
chmod +x /usr/local/bin/yay.sh
chmod 777 .
sudo -u user PACMAN="/usr/local/bin/yay.sh" makepkg -s --noconfirm
sudo -u user makepkg --printsrcinfo >.SRCINFO.new
'
- name: Ensure .SRCINFO is up to date
run: diff -u .SRCINFO .SRCINFO.new
- name: Mirror to the AUR
run: |
printf '%s' '${{inputs.ssh_key}}' >ssh_key
mkdir -p ~/.ssh
echo 'aur.archlinux.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEuBKrPzbawxA/k2g6NcyV5jmqwJ2s+zpgZGZ7tpLIcN' >>~/.ssh/known_hosts
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
pkgbase='${{inputs.pkgbase}}'
[ -n "$pkgbase" ] || pkgbase="$( (. PKGBUILD && printf '%s' "$pkgbase") )"
[ -n "$pkgbase" ] || pkgbase="$( (. PKGBUILD && printf '%s' "$pkgname") )"
[ -n "$pkgbase" ] || \
( echo "Failed to determine pkgbase"; exit 1 )
[ "${{github.ref_name}}" == "main" ] || [ "${{github.ref_name}}" == "master" ] || \
( echo "Git ref is neither main nor master, aborting"; exit 1 ) || exit 0
export GIT_SSH_COMMAND='ssh -i ssh_key -o IdentitiesOnly=yes'
git remote add aur "ssh://aur@aur.archlinux.org/$pkgbase.git"
git push aur "${{github.ref_name}}:master"