name: End to End tests on: push: branches: [ main ] pull_request: branches: [ main ] env: CARGO_TERM_COLOR: always jobs: test: name: Build generic binary and run tests on it runs-on: ubuntu-latest environment: cachix services: ssh: image: ghcr.io/linuxserver/openssh-server env: PUID: 1001 PGID: 1000 TZ: Europe/Vienna PASSWORD_ACCESS: true USER_PASSWORD: test USER_NAME: test ports: - 2222:2222 options: -v ${{ github.workspace }}/target:/usr/src/zellij --name ssh steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v18 - uses: cachix/cachix-action@v12 with: name: zellij authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Add WASM target run: rustup target add wasm32-wasi - name: Install musl-tools run: sudo apt-get install -y --no-install-recommends musl-tools - name: Add musl target run: rustup target add x86_64-unknown-linux-musl - name: Install cargo-make run: nix profile install nixpkgs#cargo-make - name: Install wasm-opt run: sudo apt-get install -y --no-install-recommends binaryen #run: cargo install --debug cargo-make - name: Build asset run: cargo make build-e2e # we copy this manually into the target folder instead of mounting it because # github actions creates the service first, and if it has a mount that is part # of your yet unchecked out code, you cannot checkout the code after the mount - name: Copy fixtures folder to target run: cp -r ${{ github.workspace }}/src/tests/fixtures ${{ github.workspace }}/target - name: Restart ssh container # we need to do this because otherwise the volume will not be mounted # on the docker container, since it was created before the folder existed uses: docker://docker with: args: docker restart ssh - name: Test run: cargo make e2e-test