Skip to content

fix(rs): do not remove vendor refs on Darwin #1958

fix(rs): do not remove vendor refs on Darwin

fix(rs): do not remove vendor refs on Darwin #1958

Workflow file for this run

name: build
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
rust-hello-linux:
strategy:
matrix:
config:
- package: default
test-bin: ./result/bin/rust-hello
- package: rust-hello
test-bin: ./result/bin/rust-hello
- package: rust-hello-aarch64-apple-darwin
test-bin: file ./result/bin/rust-hello
test-oci: docker load < ./result
# TODO: Enable
#- package: rust-hello-aarch64-apple-ios
# test-bin: file ./result/bin/rust-hello
# test-oci: docker load < ./result
- package: rust-hello-aarch64-linux-android
test-bin: file ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-aarch64-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-aarch64-unknown-linux-musl
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-arm-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-arm-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-armv7-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-armv7-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
# TODO: Enable
#- package: rust-hello-powerpc64-unknown-linux-gnu
# test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64 ./result/bin/rust-hello
# test-oci: docker load < ./result
- package: rust-hello-powerpc64le-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64le ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-riscv64gc-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-riscv64 ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-s390x-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-s390x ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-wasm32-unknown-unknown
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/rust-hello.wasm
- package: rust-hello-wasm32-wasip2
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/rust-hello.wasm
test-oci: docker load < ./result
- package: rust-hello-x86_64-apple-darwin
test-bin: file ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-x86_64-pc-windows-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#wine64' -c wine64 ./result/bin/rust-hello.exe
test-oci: docker load < ./result
- package: rust-hello-x86_64-unknown-linux-gnu
test-bin: ./result/bin/rust-hello
test-oci: |
docker load < ./result
docker run --rm rust-hello:$(nix eval --raw --override-input 'nixify' '.' ./examples/rust-hello#rust-hello-x86_64-unknown-linux-gnu-oci.imageTag)
- package: rust-hello-x86_64-unknown-linux-musl
test-bin: ./result/bin/rust-hello
test-oci: |
docker load < ./result
docker run --rm rust-hello:$(nix eval --raw --override-input 'nixify' '.' ./examples/rust-hello#rust-hello-x86_64-unknown-linux-musl-oci.imageTag)
- package: rust-hello-debug
test-bin: ./result/bin/rust-hello
- package: rust-hello-debug-aarch64-apple-darwin
test-bin: file ./result/bin/rust-hello
test-oci: docker load < ./result
# TODO: Enable
#- package: rust-hello-debug-aarch64-apple-ios
# test-bin: file ./result/bin/rust-hello
# test-oci: docker load < ./result
- package: rust-hello-debug-aarch64-linux-android
test-bin: file ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-aarch64-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-aarch64-unknown-linux-musl
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-arm-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-arm-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-armv7-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-armv7-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/rust-hello
test-oci: docker load < ./result
# TODO: Enable
#- package: rust-hello-debug-powerpc64-unknown-linux-gnu
# test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64 ./result/bin/rust-hello
# test-oci: docker load < ./result
- package: rust-hello-debug-powerpc64le-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64le ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-riscv64gc-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-riscv64 ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-s390x-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-s390x ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-wasm32-wasip2
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/rust-hello.wasm
test-oci: docker load < ./result
- package: rust-hello-debug-x86_64-apple-darwin
test-bin: file ./result/bin/rust-hello
test-oci: docker load < ./result
- package: rust-hello-debug-x86_64-pc-windows-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#wine64' -c wine64 ./result/bin/rust-hello.exe
test-oci: docker load < ./result
- package: rust-hello-debug-x86_64-unknown-linux-gnu
test-bin: ./result/bin/rust-hello
test-oci: |
docker load < ./result
docker run --rm rust-hello:$(nix eval --raw --override-input 'nixify' '.' ./examples/rust-hello#rust-hello-x86_64-unknown-linux-gnu-oci.imageTag)
- package: rust-hello-debug-x86_64-unknown-linux-musl
test-bin: ./result/bin/rust-hello
test-oci: |
docker load < ./result
docker run --rm rust-hello:$(nix eval --raw --override-input 'nixify' '.' ./examples/rust-hello#rust-hello-x86_64-unknown-linux-musl-oci.imageTag)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-nix
with:
cachixAuthToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build -L --show-trace --override-input 'nixify' '.' './examples/rust-hello#${{ matrix.config.package }}'
- run: ${{ matrix.config.test-bin }}
- run: nix build -L --show-trace --override-input 'nixify' '.' './examples/rust-hello#${{ matrix.config.package }}-oci'
if: ${{ matrix.config.package != 'default' && matrix.config.package != 'rust-hello' && matrix.config.package != 'rust-hello-debug' }}
- run: ${{ matrix.config.test-oci }}
rust-complex-linux:
strategy:
matrix:
config:
- package: default
test-bin: ./result/bin/complex-foo
- package: rust-complex
test-bin: ./result/bin/complex-foo
- package: rust-complex-aarch64-apple-darwin
test-bin: file ./result/bin/complex-foo
# TODO: Enable
#- package: rust-complex-aarch64-apple-ios
# test-bin: file ./result/bin/complex-foo
- package: rust-complex-aarch64-linux-android
test-bin: file ./result/bin/complex-foo
- package: rust-complex-aarch64-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/complex-foo
- package: rust-complex-aarch64-unknown-linux-musl
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/complex-foo
- package: rust-complex-arm-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
- package: rust-complex-arm-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
- package: rust-complex-armv7-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
- package: rust-complex-armv7-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
# TODO: Enable
#- package: rust-complex-powerpc64-unknown-linux-gnu
# test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64 ./result/bin/complex-foo
- package: rust-complex-powerpc64le-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64le ./result/bin/complex-foo
- package: rust-complex-riscv64gc-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-riscv64 ./result/bin/complex-foo
- package: rust-complex-s390x-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-s390x ./result/bin/complex-foo
- package: rust-complex-x86_64-apple-darwin
test-bin: file ./result/bin/complex-foo
- package: rust-complex-x86_64-pc-windows-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#wine64' -c wine64 ./result/bin/complex-foo.exe
suffix: .exe
- package: rust-complex-x86_64-unknown-linux-gnu
test-bin: ./result/bin/complex-foo
- package: rust-complex-x86_64-unknown-linux-musl
test-bin: ./result/bin/complex-foo
- package: rust-complex-wasm32-unknown-unknown
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
- package: rust-complex-wasm32-wasip2
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
- package: rust-complex-debug
test-bin: ./result/bin/complex-foo
- package: rust-complex-debug-aarch64-apple-darwin
test-bin: file ./result/bin/complex-foo
# TODO: Enable
#- package: rust-complex-debug-aarch64-apple-ios
# test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-aarch64-linux-android
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-aarch64-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/complex-foo
- package: rust-complex-debug-aarch64-unknown-linux-musl
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-aarch64 ./result/bin/complex-foo
- package: rust-complex-debug-arm-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
- package: rust-complex-debug-arm-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
- package: rust-complex-debug-armv7-unknown-linux-gnueabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
- package: rust-complex-debug-armv7-unknown-linux-musleabihf
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-arm ./result/bin/complex-foo
# TODO: Enable
#- package: rust-complex-debug-powerpc64-unknown-linux-gnu
# test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64 ./result/bin/complex-foo
- package: rust-complex-debug-powerpc64le-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-ppc64le ./result/bin/complex-foo
- package: rust-complex-debug-riscv64gc-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-riscv64 ./result/bin/complex-foo
- package: rust-complex-debug-s390x-unknown-linux-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#qemu' -c qemu-s390x ./result/bin/complex-foo
- package: rust-complex-debug-x86_64-apple-darwin
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-x86_64-pc-windows-gnu
test-bin: nix shell --inputs-from . 'nixpkgs#wine64' -c wine64 ./result/bin/complex-foo.exe
suffix: .exe
- package: rust-complex-debug-x86_64-unknown-linux-gnu
test-bin: ./result/bin/complex-foo
- package: rust-complex-debug-x86_64-unknown-linux-musl
test-bin: ./result/bin/complex-foo
- package: rust-complex-debug-wasm32-unknown-unknown
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
- package: rust-complex-debug-wasm32-wasip2
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-nix
with:
cachixAuthToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- uses: ./.github/actions/build-nix
with:
package: ${{ matrix.config.package }}
flake: ./examples/rust-complex
install-path: /bin/complex-foo${{ matrix.config.suffix }}
prefix: linux
- run: ${{ matrix.config.test-bin }}
rust-complex-macos:
strategy:
matrix:
config:
- package: default
test-bin: ./result/bin/complex-foo
- package: rust-complex
test-bin: ./result/bin/complex-foo
- package: rust-complex-aarch64-apple-darwin
test-bin: file ./result/bin/complex-foo
- package: rust-complex-aarch64-unknown-linux-musl
test-bin: file ./result/bin/complex-foo
- package: rust-complex-arm-unknown-linux-gnueabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-arm-unknown-linux-musleabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-armv7-unknown-linux-gnueabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-armv7-unknown-linux-musleabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-powerpc64le-unknown-linux-gnu
test-bin: file ./result/bin/complex-foo
- package: rust-complex-riscv64gc-unknown-linux-gnu
test-bin: file ./result/bin/complex-foo
- package: rust-complex-s390x-unknown-linux-gnu
test-bin: file ./result/bin/complex-foo
- package: rust-complex-x86_64-apple-darwin
test-bin: ./result/bin/complex-foo
- package: rust-complex-x86_64-pc-windows-gnu
test-bin: file ./result/bin/complex-foo.exe
suffix: .exe
- package: rust-complex-x86_64-unknown-linux-musl
test-bin: file ./result/bin/complex-foo
- package: rust-complex-wasm32-unknown-unknown
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
- package: rust-complex-wasm32-wasip2
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
- package: rust-complex-debug
test-bin: ./result/bin/complex-foo
- package: rust-complex-debug-aarch64-apple-darwin
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-aarch64-unknown-linux-musl
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-arm-unknown-linux-gnueabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-arm-unknown-linux-musleabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-armv7-unknown-linux-gnueabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-armv7-unknown-linux-musleabihf
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-powerpc64le-unknown-linux-gnu
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-riscv64gc-unknown-linux-gnu
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-s390x-unknown-linux-gnu
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-x86_64-apple-darwin
test-bin: ./result/bin/complex-foo
- package: rust-complex-debug-x86_64-pc-windows-gnu
test-bin: file ./result/bin/complex-foo.exe
suffix: .exe
- package: rust-complex-debug-x86_64-unknown-linux-musl
test-bin: file ./result/bin/complex-foo
- package: rust-complex-debug-wasm32-unknown-unknown
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
- package: rust-complex-debug-wasm32-wasip2
test-bin: nix run --inputs-from . 'nixpkgs#wasmtime' ./result/bin/complex-foo.wasm
suffix: .wasm
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-nix
with:
cachixAuthToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- uses: ./.github/actions/build-nix
with:
package: ${{ matrix.config.package }}
flake: ./examples/rust-complex
install-path: /bin/complex-foo${{ matrix.config.suffix }}
prefix: macos
- run: ${{ matrix.config.test-bin }}
oci-linux:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' }}
permissions:
packages: write
needs:
- rust-hello-linux
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-nix
with:
cachixAuthToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- run: |
nix run -L --show-trace --override-input 'nixify' '.' './examples/rust-hello#build-rust-hello-oci' rust-hello
nix profile install --inputs-from . 'nixpkgs#buildah'
buildah manifest push --all --format 'v2s2' rust-hello docker://ghcr.io/${{ github.repository_owner }}/nixify:rust-hello-${{ github.sha }}
docker run ghcr.io/${{ github.repository_owner }}/nixify:rust-hello-${{ github.sha }}
test-linux:
runs-on: ubuntu-latest
needs:
- rust-complex-linux
- oci-linux
steps:
- uses: actions/download-artifact@v4
with:
name: linux-rust-complex-x86_64-unknown-linux-musl
- run: chmod +x ./rust-complex-x86_64-unknown-linux-musl
- run: ./rust-complex-x86_64-unknown-linux-musl
test-macos:
runs-on: macos-latest
needs: rust-complex-linux
steps:
- uses: actions/download-artifact@v4
with:
name: linux-rust-complex-aarch64-apple-darwin
- uses: actions/download-artifact@v4
with:
name: linux-rust-complex-x86_64-apple-darwin
- run: chmod +x ./rust-complex-x86_64-apple-darwin
- run: ./rust-complex-x86_64-apple-darwin
- run: lipo -create ./rust-complex-aarch64-apple-darwin ./rust-complex-x86_64-apple-darwin -output ./rust-complex-universal-darwin
- run: chmod +x ./rust-complex-universal-darwin
- run: ./rust-complex-universal-darwin
- uses: actions/upload-artifact@v4
with:
name: rust-complex-universal-darwin
path: rust-complex-universal-darwin
test-windows:
runs-on: windows-latest
needs: rust-complex-linux
steps:
- uses: actions/download-artifact@v4
with:
name: linux-rust-complex-x86_64-pc-windows-gnu
- run: '& .\rust-complex-x86_64-pc-windows-gnu'
test-artifacts:
runs-on: ubuntu-latest
needs:
- rust-complex-linux
- rust-complex-macos
- rust-hello-linux
- test-linux
- test-macos
- test-windows
steps:
- run: echo "binary artifacts are valid"