From d03058d125c2ef2bf056b99fff8e2990928a23de Mon Sep 17 00:00:00 2001 From: cy Date: Sun, 4 May 2025 03:18:51 -0400 Subject: [PATCH 1/3] add build workflow --- .github/workflows/build.yml | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8332f1c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,61 @@ +name: build +on: + workflow_dispatch: + push: + pull_request: + +env: + TERM: ansi + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets. AWS_SECRET_ACCESS_KEY }} + AWS_ENDPOINT: https://s3.cy7.sh + +jobs: + build-packages: + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - ubuntu-24.04-arm + runs-on: ${{ matrix.os }} + + steps: + - name: setup binary cache key + run: echo -n "${{ secrets.NIX_CACHE_SECRET_KEY }}" | xxd -p -r > ${{ runner.temp }}/cache-priv-key.pem + + - name: Install Nix + uses: cachix/install-nix-action@v30 + with: + enable_kvm: true + extra_nix_config: | + show-trace = true + experimental-features = nix-command flakes + secret-key-files = ${{ runner.temp }}/cache-priv-key.pem + extra-substituters = https://nixcache.cy7.sh + extra-trusted-public-keys = nixcache.cy7.sh:DN3d1dt0wnXfTH03oVmTee4KgmdNdB0NY3SuzA8Fwx8= + + - name: Sync repository + uses: actions/checkout@v4 + with: + persist-credentials: false + + - run: nix build -L . + + - name: cache + run: | + nix run \ + github:cything/nixcp/test-in-ci -- push \ + --bucket nixcache \ + --signing-key ${{ runner.temp }}/cache-priv-key.pem \ + result + + - name: prepare tarball to upload + run: nix run github:nixos/nixpkgs#gnutar hcvf result.tar result + + - name: upload result + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.os }}.tar + path: result.tar + if-no-files-found: error From 688fcd8706d5f9e456c61822ec0d279f1fb6eac9 Mon Sep 17 00:00:00 2001 From: cy Date: Sun, 4 May 2025 03:18:51 -0400 Subject: [PATCH 2/3] add test workflow --- .github/workflows/test.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..12ef747 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,28 @@ +name: test +on: + workflow_dispatch: + push: + pull_request: + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Install Nix + uses: cachix/install-nix-action@v30 + with: + enable_kvm: true + extra_nix_config: | + show-trace = true + experimental-features = nix-command flakes + extra-substituters = https://nixcache.cy7.sh + extra-trusted-public-keys = nixcache.cy7.sh:DN3d1dt0wnXfTH03oVmTee4KgmdNdB0NY3SuzA8Fwx8= + + - uses: actions/checkout@v4 + + - name: Run tests + run: nix develop -c cargo test --verbose From 96ae0ca647474cb2012aa75108128f6fb2c3d668 Mon Sep 17 00:00:00 2001 From: cy Date: Sun, 4 May 2025 03:18:51 -0400 Subject: [PATCH 3/3] disable closure test Size of the closure is not deterministic at all. I guess it's because if the package was sourced from a cache, some dependencies may or may not exist in the local nix store. --- tests/path_info.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/path_info.rs b/tests/path_info.rs index 0f9543b..2558703 100644 --- a/tests/path_info.rs +++ b/tests/path_info.rs @@ -44,6 +44,7 @@ async fn path_info_symlink() { assert_eq!(path_info.path.to_string(), HELLO_DRV); } +/* #[tokio::test] async fn closure() { let ctx = common::context(); @@ -54,3 +55,4 @@ async fn closure() { let closure = path_info.get_closure(&ctx.store).await.unwrap(); assert_eq!(closure.len(), 472); } +*/