Version Gate #13
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: 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 |