Skip to content

fix(ci): fix .SRCINFO array order #3

fix(ci): fix .SRCINFO array order

fix(ci): fix .SRCINFO array order #3

Workflow file for this run

name: Build
on:
push:
branches: [master]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
jobs:
package:
name: Build and inspect chiri
runs-on: ubuntu-24.04
timeout-minutes: 120
container: archlinux:base-devel
env:
CARGO_HOME: /home/builder/.cargo
MAKEPKG_SRCDEST: ${{ github.workspace }}/.makepkg/sources
PNPM_STORE_DIR: /home/builder/.local/share/pnpm/store
RUSTC_WRAPPER: /usr/bin/sccache
SCCACHE_CACHE_SIZE: 1G
SCCACHE_DIR: ${{ github.workspace }}/.cache/sccache
defaults:
run:
shell: bash
steps:
- name: Prepare Arch container
run: |
set -euo pipefail
pacman -Sy --noconfirm archlinux-keyring
pacman -Syu --noconfirm --needed git sudo namcap desktop-file-utils binutils sccache tar zstd
useradd -m builder
echo 'builder ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/builder
- name: Checkout
uses: actions/checkout@v6
- name: Create cache directories
run: |
set -euo pipefail
install -d -m 0755 -o builder -g builder \
"$MAKEPKG_SRCDEST" \
"$CARGO_HOME/git" \
"$CARGO_HOME/registry" \
"$PNPM_STORE_DIR" \
"$SCCACHE_DIR"
- name: Cache build inputs
uses: actions/cache@v4
with:
path: |
.makepkg/sources
/home/builder/.cargo/git
/home/builder/.cargo/registry
/home/builder/.local/share/pnpm/store
.cache/sccache
key: arch-source-build-v2-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('PKGBUILD') }}
restore-keys: |
arch-source-build-v2-${{ runner.os }}-${{ runner.arch }}-
- name: Check .SRCINFO is current
run: |
set -euo pipefail
sudo chown -R builder:builder "$GITHUB_WORKSPACE" "$CARGO_HOME" "$PNPM_STORE_DIR" "$SCCACHE_DIR"
sudo -u builder env \
HOME=/home/builder \
CARGO_HOME="$CARGO_HOME" \
RUSTC_WRAPPER="$RUSTC_WRAPPER" \
SCCACHE_CACHE_SIZE="$SCCACHE_CACHE_SIZE" \
SCCACHE_DIR="$SCCACHE_DIR" \
SRCDEST="$MAKEPKG_SRCDEST" \
npm_config_store_dir="$PNPM_STORE_DIR" \
makepkg --printsrcinfo | sudo tee .SRCINFO.generated > /dev/null
diff -u .SRCINFO .SRCINFO.generated
- name: Build package
run: |
set -euo pipefail
sudo -u builder env \
HOME=/home/builder \
CARGO_HOME="$CARGO_HOME" \
RUSTC_WRAPPER="$RUSTC_WRAPPER" \
SCCACHE_CACHE_SIZE="$SCCACHE_CACHE_SIZE" \
SCCACHE_DIR="$SCCACHE_DIR" \
SRCDEST="$MAKEPKG_SRCDEST" \
npm_config_store_dir="$PNPM_STORE_DIR" \
makepkg --syncdeps --noconfirm --noprogressbar --cleanbuild
- name: Show compiler cache stats
if: always()
run: |
set -euo pipefail
sudo -u builder env \
RUSTC_WRAPPER="$RUSTC_WRAPPER" \
SCCACHE_CACHE_SIZE="$SCCACHE_CACHE_SIZE" \
SCCACHE_DIR="$SCCACHE_DIR" \
sccache --show-stats
- name: Run namcap
run: |
set -euo pipefail
namcap PKGBUILD || true
namcap ./*.pkg.tar.zst || true
- name: Install package
run: |
set -euo pipefail
pacman -U --noconfirm ./*.pkg.tar.zst
- name: Inspect installed files
run: |
set -euo pipefail
pacman -Qql chiri
test -x /usr/bin/Chiri
desktop_file="$(pacman -Qql chiri | grep '/usr/share/applications/.*\.desktop$' | head -n1)"
test -n "$desktop_file"
desktop-file-validate "$desktop_file"
ldd /usr/bin/Chiri | tee /tmp/chiri-ldd.txt
! grep -q "not found" /tmp/chiri-ldd.txt