build-procursus-debs #197
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build-procursus-debs | |
on: | |
workflow_dispatch: | |
defaults: | |
run: | |
shell: bash | |
env: | |
MEMO_TARGET: iphoneos-arm64 | |
NO_PGP: 1 | |
jobs: | |
build: | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
cfver: [ 1900 ] | |
steps: | |
- name: Select Xcode version | |
run: sudo xcode-select -switch '/Applications/Xcode_15.2.app/Contents/Developer' | |
- name: Download zstd | |
id: download-zstd | |
run: | | |
dir=$(mktemp -d /tmp/XXXX) && cd "${dir}" | |
curl -LO https://cameronkatri.com/zstd | |
chmod +x ./zstd | |
echo "DIR=${dir}" >> $GITHUB_OUTPUT | |
- name: Boostrap Procursus | |
run: | | |
dir="${{ steps.download-zstd.outputs.DIR }}" && cd "${dir}" | |
curl -L https://apt.procurs.us/bootstraps/big_sur/bootstrap-darwin-amd64.tar.zst -o bootstrap.tar.zst | |
./zstd -dk bootstrap.tar.zst | |
sudo tar -xvvpkf ./bootstrap.tar -C / || : | |
cd - | |
rm -vrf "${dir}" | |
- name: Add Procusus to PATH | |
run: | | |
PROCURSUS_PATHS=("/opt/procursus/games" "/opt/procursus/sbin" "/opt/procursus/bin" "/opt/procursus/local/sbin" "/opt/procursus/local/bin") | |
for i in "${PROCURSUS_PATHS[@]}"; | |
do | |
case ":$PATH:" in | |
*:$i:*) echo "$i is already in PATH, not adding";; | |
*) echo "$i" >> $GITHUB_PATH;; | |
esac | |
done | |
case ":$CPATH:" in | |
*:/opt/procursus/include:*) echo "/opt/procursus/include already in CPATH, not adding";; | |
*) echo "CPATH=$CPATH:/opt/procursus/include" >> $GITHUB_ENV;; | |
esac | |
case ":$LIBRARY_PATH:" in | |
*:/opt/procursus/lib:*) echo "/opt/procursus/lib already in LIBRARY_PATH, not adding";; | |
*) echo "LIBRARY_PATH=$LIBRARY_PATH:/opt/procursus/lib" >> $GITHUB_ENV;; | |
esac | |
- name: Create unprivileged user for APT method | |
run: | | |
# Taken from Procursus' apt.postinst | |
set -e | |
getHiddenUserUid() | |
{ | |
local __UIDS=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ugr) | |
local __NewUID | |
for __NewUID in $__UIDS | |
do | |
if [[ $__NewUID -lt 499 ]] ; then | |
break; | |
fi | |
done | |
echo $((__NewUID+1)) | |
} | |
if ! id _apt &>/dev/null; then | |
# add unprivileged user for the apt methods | |
sudo dscl . -create /Users/_apt UserShell /usr/bin/false | |
sudo dscl . -create /Users/_apt NSFHomeDirectory /var/empty | |
sudo dscl . -create /Users/_apt PrimaryGroupID -1 | |
sudo dscl . -create /Users/_apt UniqueID $(getHiddenUserUid) | |
sudo dscl . -create /Users/_apt RealName "APT Sandbox User" | |
else | |
echo "APT Sandbox User already exists, not creating" | |
fi | |
- name: Update bootstrap | |
run: | | |
sudo apt-get -y update | |
sudo apt-get -o DPkg::Options::=--force-confdef -y --allow-downgrades dist-upgrade || : | |
- name: Install necessary packages on macOS | |
run: | | |
sudo apt-get install -o DPkg::Options::=--force-confdef -y autoconf automake autopoint \ | |
bash bison cmake curl docbook-xml docbook-xsl fakeroot findutils flex gawk git gnupg \ | |
grep groff gzip ldid libtool make ncurses-bin openssl patch pkg-config po4a python3 \ | |
sed tar triehash xz-utils asciidoc zstd xmlto gnu-getopt libpython3.9-dev ninja | |
- name: Checkout Procursus | |
uses: actions/checkout@v4 | |
with: | |
repository: 'ProcursusTeam/Procursus' | |
path: 'Procursus' | |
fetch-depth: 0 | |
- name: Build cacerts | |
if: ${{ success() || failure() }} | |
working-directory: ./Procursus | |
run: | | |
MEMO_TARGET=$MEMO_TARGET MEMO_CFVER=${{ matrix.cfver }} NO_PGP=$NO_PGP gmake openssh-package | |
- name: Create build dirs | |
run: | | |
mkdir -vp $GITHUB_WORKSPACE/my_repo | |
- name: Checkout my repo | |
if: ${{ success() || failure() }} | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.MY_PAT }} | |
path: 'my_repo' | |
- name: Config git | |
if: ${{ success() || failure() }} | |
run: | | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email '30465144+github-actions[bot]@users.noreply.github.com' | |
- name: Commit packages | |
if: ${{ success() || failure() }} | |
working-directory: my_repo | |
run: | | |
rm -vrf ../Procursus/build_dist/$MEMO_TARGET/${{ matrix.cfver }}/work/ | |
rsync --progress -r -u -v ../Procursus/build_dist/$MEMO_TARGET/${{ matrix.cfver }}/* ./repos/${{ matrix.cfver }}/debs/ | |
git add -v . | |
git commit -v -m "Upload packages" | |
- name: Push bootstrap and packages | |
if: ${{ success() || failure() }} | |
working-directory: my_repo | |
run: | | |
git push -v |