Files
euri-iso/.github/workflows/build.yml
T

105 lines
3.3 KiB
YAML

name: Build ISO
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
container:
image: artixlinux/artixlinux:base
options: --privileged
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
pacman -Syu --noconfirm --needed --overwrite='*' \
artools \
git \
squashfs-tools \
sudo \
python \
python-pip
- name: Set up WORKSPACE_DIR
run: |
echo "WORKSPACE_DIR=${{ github.workspace }}" >> $GITHUB_ENV
- name: Debug workspace
run: |
echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE"
echo "github.workspace=${{ github.workspace }}"
pwd
ls -la
- name: Override pacman.conf with antergos-pkgs repo
run: |
mkdir -p /root/.config/artools/pacman.conf.d
cp "pacman.conf.d/iso-x86_64.conf" \
/root/.config/artools/pacman.conf.d/iso-x86_64.conf
# Also override the default in case USER_CONF_DIR differs
cp "pacman.conf.d/iso-x86_64.conf" \
/usr/share/artools/pacman.conf.d/iso-x86_64.conf
- name: Check available swap and block devices
run: |
swapon --show || echo "No swap"
lsblk
free -h
- name: Setup tmpfs for build directory
run: |
mkdir -p /var/lib/artools/buildiso
mount -t tmpfs -o size=12G,exec,suid,dev tmpfs /var/lib/artools/buildiso
mount | grep buildiso
- name: Build ISO
run: |
sudo -E ./buildiso -p antergos
- name: Upload ISO artifact
uses: actions/upload-artifact@v4
with:
name: Antergos-NeXT-ISO
path: ${{ github.workspace }}/iso/
- name: Upload to Internet Archive
if: false # My NVMe tried to unalive itself, 1536 unsafe shutdowns, ext4 cooked medium-rare, so I'm raw-dogging my own distro now. Set to true when I stop being my own QA team.
env:
IA_ACCESS_KEY: ${{ secrets.IA_ACCESS_KEY }}
IA_SECRET_KEY: ${{ secrets.IA_SECRET_KEY }}
run: |
pip install --break-system-packages internetarchive
mkdir -p "$HOME/.config/internetarchive"
cat > "$HOME/.config/internetarchive/ia.ini" <<EOF
[s3]
access = $IA_ACCESS_KEY
secret = $IA_SECRET_KEY
EOF
ISO_DIR="${WORKSPACE_DIR}/iso"
ISO=$(ls "$ISO_DIR"/antergos/*.iso 2>/dev/null | head -1)
[[ -z "$ISO" || ! -f "$ISO" ]] && { echo "No ISO found"; exit 1; }
DATE=$(date +%Y.%m.%d)
IDENTIFIER="antergos-next-$(date +%Y%m%d)-${{ github.run_number }}"
SIZE=$(stat -c%s "$ISO")
if [[ $SIZE -lt 524288000 ]]; then
echo "WARNING: ISO smaller than expected (${SIZE} bytes)"
file "$ISO" | grep -q "ISO 9660\|UDF" || { echo "Corrupted ISO"; exit 1; }
fi
ia upload "$IDENTIFIER" "$ISO" \
--metadata="title:Antergos NeXT $(date +%Y.%m.%d)" \
--metadata="mediatype:software" \
--metadata="collection:open_source_software" \
--metadata="description:Antergos NeXT community revival ISO — KDE Plasma, Dinit, Calamares installer" \
--metadata="subject:Antergos; Linux; Artix; Dinit; KDE Plasma; Calamares" \
--retries 5
echo "Uploaded to: https://archive.org/details/$IDENTIFIER"