chore: update to v0.9.1 #4
This file contains hidden or 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 | |
| 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 |