name: test on: push: jobs: test: runs-on: ${{ matrix.os }} env: CARGO_HOME: ~/.cargo strategy: fail-fast: false matrix: include: - target: x86_64-linux os: ubuntu-latest - target: aarch64-linux os: ubuntu-latest - target: x86_64-windows os: ubuntu-latest - target: x86_64-darwin os: macos-13 - target: aarch64-darwin os: macos-14 steps: - name: Checkout code uses: actions/checkout@v2 - name: Install Nix uses: cachix/install-nix-action@v27 with: nix_path: nixpkgs=channel:nixos-24.05 enable_kvm: true extra_nix_config: "experimental-features = nix-command flakes" - name: Restore Nix store uses: cachix/cachix-action@v15 with: name: soywod authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' extraPullNames: nix-community - name: Restore Cargo home uses: actions/cache/restore@v4 id: cache-cargo-restore with: key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ - name: Build release run: | nix run -L .#${{ matrix.target }} -- --version cp result/himalaya* . - name: Upload release artifact uses: actions/upload-artifact@v4 with: name: release path: | himalaya.tgz himalaya.zip - name: Save Cargo home uses: actions/cache/save@v4 id: cache-cargo-save with: key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/