Skip to content

Version Gate

Version Gate #13

Workflow file for this run

name: Version Gate
on:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: version-gate-${{ github.workflow }}-${{ github.run_id }}
cancel-in-progress: false
jobs:
linux-profile-smoke:
runs-on: ubuntu-latest
timeout-minutes: 90
defaults:
run:
shell: bash
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v22
with:
determinate: false
extra-conf: |
accept-flake-config = true
max-jobs = 2
cores = 2
- name: Install yzx into a temp profile
run: |
for package in \
yazelix \
yazelix-no-helix \
yazelix-no-yazi \
yazelix-no-helix-no-yazi; do
profile="$RUNNER_TEMP/$package-profile"
nix profile add --refresh "$GITHUB_WORKSPACE#$package" --profile "$profile"
test -x "$profile/bin/yzx"
test -f "$profile/share/applications/yzx-stable.desktop"
done
grep -Fqx 'Name=Yazelix Nova (Stable)' "$RUNNER_TEMP/yazelix-profile/share/applications/yzx-stable.desktop"
- name: Build release contract checks
run: |
nix build --no-link --print-build-logs \
.#checks.x86_64-linux.contracts \
.#checks.x86_64-linux.desktop_channels \
.#checks.x86_64-linux.helix_contracts \
.#checks.x86_64-linux.host_yazi_contracts \
.#checks.x86_64-linux.key_reference_parity \
.#checks.x86_64-linux.rio_contracts \
.#checks.x86_64-linux.no_rio_contracts \
.#checks.x86_64-linux.no_helix_contracts
- name: Smoke installed yzx commands
run: |
profile="$RUNNER_TEMP/yazelix-profile"
export HOME="$RUNNER_TEMP/yazelix-home"
export YAZELIX_CONFIG_HOME="$RUNNER_TEMP/yazelix-config"
export YAZELIX_STATE_DIR="$RUNNER_TEMP/yazelix-state"
export XDG_DATA_HOME="$RUNNER_TEMP/yazelix-data"
mkdir -p "$HOME" "$YAZELIX_CONFIG_HOME" "$YAZELIX_STATE_DIR" "$XDG_DATA_HOME"
"$profile/bin/yzx" help > "$RUNNER_TEMP/yzx-help.txt"
"$profile/bin/yzx" status > "$RUNNER_TEMP/yzx-status.txt"
"$profile/bin/yzx" doctor > "$RUNNER_TEMP/yzx-doctor.txt"
"$profile/bin/yzx" tutor list > "$RUNNER_TEMP/yzx-tutor-list.txt"
grep -F 'Yazelix Nova' "$RUNNER_TEMP/yzx-help.txt"
grep -F 'Yazelix Nova status' "$RUNNER_TEMP/yzx-status.txt"
grep -F "config home: $YAZELIX_CONFIG_HOME" "$RUNNER_TEMP/yzx-status.txt"
grep -F "state dir: $YAZELIX_STATE_DIR" "$RUNNER_TEMP/yzx-status.txt"
grep -F 'Yazelix Nova doctor' "$RUNNER_TEMP/yzx-doctor.txt"
grep -F "ok config home: $YAZELIX_CONFIG_HOME" "$RUNNER_TEMP/yzx-doctor.txt"
grep -F 'Yazelix Nova tutor lessons' "$RUNNER_TEMP/yzx-tutor-list.txt"
macos-package-smoke:
runs-on: macos-15
timeout-minutes: 90
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
defaults:
run:
shell: bash
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v22
with:
determinate: false
extra-conf: |
accept-flake-config = true
max-jobs = 1
cores = 2
- name: Build aarch64-darwin packages and checks
run: |
for package in \
yazelix \
yazelix-no-helix \
yazelix-no-yazi \
yazelix-no-helix-no-yazi; do
path="$(nix build --no-link --no-write-lock-file --print-out-paths --print-build-logs ".#packages.aarch64-darwin.$package")"
test ! -e "$path/share/applications"
done
nix build --no-link --no-write-lock-file --print-build-logs \
.#checks.aarch64-darwin.desktop_channels \
.#checks.aarch64-darwin.home_manager \
.#checks.aarch64-darwin.host_yazi_contracts \
.#checks.aarch64-darwin.rio_contracts \
.#checks.aarch64-darwin.no_helix_contracts