chore(deps): update dependency typescript to v7 #982
Workflow file for this run
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: "[impit-node] Test & Build" | |
| env: | |
| DEBUG: napi:* | |
| APP_NAME: impit-node | |
| MACOSX_DEPLOYMENT_TARGET: '10.13' | |
| RUSTFLAGS: '--cfg reqwest_unstable' | |
| permissions: | |
| contents: write | |
| id-token: write | |
| 'on': | |
| push: | |
| branches: | |
| - master | |
| tags-ignore: | |
| - '**' | |
| paths: | |
| - 'impit-node/**' | |
| pull_request: | |
| paths: | |
| - 'impit-node/**' | |
| - 'impit/**' | |
| - '.github/workflows/node-test.yaml' | |
| workflow_call: | |
| jobs: | |
| build: | |
| defaults: | |
| run: | |
| working-directory: impit-node | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| settings: | |
| - host: macos-latest | |
| target: x86_64-apple-darwin | |
| build: pnpm build --target x86_64-apple-darwin | |
| - host: windows-latest | |
| build: pnpm build --target x86_64-pc-windows-msvc | |
| target: x86_64-pc-windows-msvc | |
| - host: ubuntu-22.04 | |
| target: x86_64-unknown-linux-gnu | |
| build: pnpm build --target x86_64-unknown-linux-gnu | |
| - host: ubuntu-22.04-arm | |
| target: aarch64-unknown-linux-musl | |
| docker: arm64v8/node:20-alpine | |
| build: |- | |
| export PATH="/usr/local/cargo/bin/rustup:/root/.cargo/bin:$PATH" RUSTFLAGS="-C target-feature=-crt-static --cfg reqwest_unstable" CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=gcc CC=gcc CXX="g++" GN_EXE=gn | |
| apk add --update --no-cache bash wget cmake musl-dev clang llvm build-base python3 gcc g++ perl | |
| sed -i -e 's/v[[:digit:]]\..*\//edge\//g' /etc/apk/repositories | |
| apk add --update --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/testing rustup git gn tar ninja | |
| apk update | |
| apk upgrade | |
| rustup-init -y | |
| npm install -g pnpm@10.24.0 | |
| cd impit-node && pnpm install --frozen-lockfile && pnpm build | |
| - host: ubuntu-22.04-arm | |
| target: aarch64-unknown-linux-gnu | |
| build: pnpm build --target aarch64-unknown-linux-gnu | |
| - host: ubuntu-latest | |
| target: x86_64-unknown-linux-musl | |
| docker: node:20-alpine | |
| # Script taken from https://github.com/napi-rs/napi-rs/blob/main/alpine.Dockerfile | |
| build: | | |
| export PATH="/aarch64-linux-musl-cross/bin:/usr/local/cargo/bin/rustup:/root/.cargo/bin:$PATH" RUSTFLAGS="-C target-feature=-crt-static --cfg reqwest_unstable" CC="clang" CXX="clang++" GN_EXE=gn | |
| apk add --update --no-cache bash wget cmake musl-dev clang llvm build-base python3 | |
| sed -i -e 's/v[[:digit:]]\..*\//edge\//g' /etc/apk/repositories | |
| apk add --update --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/testing rustup git gn tar ninja | |
| apk update | |
| apk upgrade | |
| rustup-init -y | |
| npm install -g pnpm@10.24.0 | |
| rustup target add aarch64-unknown-linux-musl | |
| wget https://github.com/napi-rs/napi-rs/releases/download/linux-musl-cross%4010/aarch64-linux-musl-cross.tgz | |
| tar -xvf aarch64-linux-musl-cross.tgz | |
| rm aarch64-linux-musl-cross.tgz | |
| apk add perl | |
| ln -s /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/crtbeginS.o /usr/lib/crtbeginS.o | |
| ln -s /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/crtendS.o /usr/lib/crtendS.o | |
| ln -s /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/libgcc.a /usr/lib/libgcc.a | |
| cd impit-node && pnpm install --frozen-lockfile && pnpm build --target x86_64-unknown-linux-musl | |
| - host: macos-latest | |
| target: aarch64-apple-darwin | |
| build: pnpm build --target aarch64-apple-darwin | |
| - host: windows-latest | |
| target: aarch64-pc-windows-msvc | |
| build: pnpm build --target aarch64-pc-windows-msvc | |
| name: stable - ${{ matrix.settings.target }} - node@22 | |
| runs-on: ${{ matrix.settings.host }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 24 | |
| - name: Install pnpm and dependencies | |
| if: ${{ !matrix.settings.docker }} | |
| uses: apify/actions/pnpm-install@v1.4.0 | |
| with: | |
| working-directory: impit-node | |
| - name: Install | |
| uses: dtolnay/rust-toolchain@stable | |
| if: ${{ !matrix.settings.docker }} | |
| with: | |
| toolchain: stable | |
| targets: ${{ matrix.settings.target }} | |
| - name: Cache cargo | |
| uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| .cargo-cache | |
| target/ | |
| key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} | |
| - uses: goto-bus-stop/setup-zig@v2 | |
| if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' || matrix.settings.target == 'armv7-unknown-linux-musleabihf' }} | |
| with: | |
| version: 0.13.0 | |
| - name: Setup toolchain | |
| run: ${{ matrix.settings.setup }} | |
| if: ${{ matrix.settings.setup }} | |
| shell: bash | |
| - name: Setup node x86 | |
| if: matrix.settings.target == 'i686-pc-windows-msvc' | |
| run: pnpm config set supportedArchitectures.cpu "ia32" | |
| shell: bash | |
| - name: Setup node x86 | |
| uses: actions/setup-node@v7 | |
| if: matrix.settings.target == 'i686-pc-windows-msvc' | |
| with: | |
| node-version: 24 | |
| architecture: x86 | |
| - name: Build in docker | |
| uses: maus007/docker-run-action-fork@207a4e2a8ebf7e4b985656ba990b1e53715dce2a | |
| if: ${{ matrix.settings.docker }} | |
| with: | |
| image: ${{ matrix.settings.docker }} | |
| options: '--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build' | |
| run: ${{ matrix.settings.build }} | |
| - name: Build | |
| if: ${{ !matrix.settings.docker }} | |
| shell: bash | |
| run: ${{ matrix.settings.build }} | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: bindings-${{ matrix.settings.target }} | |
| path: impit-node/${{ env.APP_NAME }}.*.node | |
| if-no-files-found: error | |
| test-macOS-windows-binding: | |
| name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} | |
| needs: | |
| - build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| settings: | |
| - host: macos-latest | |
| target: x86_64-apple-darwin | |
| - host: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| node: | |
| - '20' | |
| - '22' | |
| - '24' | |
| exclude: | |
| # @pnpm/exe does not ship a working binary for Intel macOS (darwin-x64) due to an upstream Node.js SEA bug. | |
| # See https://github.com/pnpm/pnpm/issues/11423 and https://github.com/nodejs/node/issues/62893. | |
| # We just skip this combination, as Node 20 is EOL anyway, | |
| # and we test the same target on Node 22+, so chances are that the bindings work on Node 20 as well. | |
| - settings: | |
| host: macos-latest | |
| target: x86_64-apple-darwin | |
| node: '20' | |
| runs-on: ${{ matrix.settings.host }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| architecture: x64 | |
| - name: Install pnpm and dependencies | |
| uses: apify/actions/pnpm-install@v1.4.0 | |
| with: | |
| working-directory: impit-node | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: bindings-${{ matrix.settings.target }} | |
| path: impit-node | |
| - name: List packages | |
| run: ls -R . | |
| shell: bash | |
| - name: Test bindings | |
| working-directory: impit-node | |
| env: | |
| APIFY_HTTPBIN_TOKEN: ${{ secrets.APIFY_HTTPBIN_TOKEN }} | |
| run: pnpm test | |
| test-linux-x64-gnu-binding: | |
| name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} | |
| needs: | |
| - build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: | |
| - '20' | |
| - '22' | |
| - '24' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Install pnpm and dependencies | |
| uses: apify/actions/pnpm-install@v1.4.0 | |
| with: | |
| working-directory: impit-node | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: bindings-x86_64-unknown-linux-gnu | |
| path: impit-node | |
| - name: List packages | |
| run: ls -R . | |
| shell: bash | |
| - name: Test bindings | |
| run: docker run -e CI=1 -e APIFY_HTTPBIN_TOKEN=${{ secrets.APIFY_HTTPBIN_TOKEN }} --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim sh -c "npm install -g pnpm@10.24.0 && cd impit-node && pnpm test" | |
| test-linux-aarch64-gnu-binding: | |
| name: Test bindings on Linux-aarch64-gnu - node@${{ matrix.node }} | |
| needs: | |
| - build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: | |
| - '20' | |
| - '22' | |
| - '24' | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Install pnpm and dependencies | |
| uses: apify/actions/pnpm-install@v1.4.0 | |
| with: | |
| working-directory: impit-node | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: bindings-aarch64-unknown-linux-gnu | |
| path: impit-node | |
| - name: List packages | |
| run: ls -R . | |
| shell: bash | |
| - name: Test bindings | |
| working-directory: impit-node | |
| env: | |
| APIFY_HTTPBIN_TOKEN: ${{ secrets.APIFY_HTTPBIN_TOKEN }} | |
| run: pnpm test | |
| test-linux-aarch64-musl-binding: | |
| name: Test bindings on Linux-aarch64-musl - node@${{ matrix.node }} | |
| needs: | |
| - build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: | |
| - '20' | |
| - '22' | |
| - '24' | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: bindings-aarch64-unknown-linux-musl | |
| path: impit-node | |
| - name: List packages | |
| run: ls -R . | |
| shell: bash | |
| - name: Test bindings | |
| run: | | |
| docker run -e CI=1 -e APIFY_HTTPBIN_TOKEN=${{ secrets.APIFY_HTTPBIN_TOKEN }} --rm -v $(pwd):/build -w /build arm64v8/node:${{ matrix.node }}-alpine sh -c "npm install -g pnpm@10.24.0 && cd impit-node && pnpm install --frozen-lockfile && pnpm test" | |
| test-linux-x64-musl-binding: | |
| name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} | |
| needs: | |
| - build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: | |
| - '20' | |
| - '22' | |
| - '24' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: bindings-x86_64-unknown-linux-musl | |
| path: impit-node | |
| - name: List packages | |
| run: ls -R . | |
| shell: bash | |
| - name: Test bindings | |
| run: | | |
| docker run -e CI=1 -e APIFY_HTTPBIN_TOKEN=${{ secrets.APIFY_HTTPBIN_TOKEN }} --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine sh -c "npm install -g pnpm@10.24.0 && cd impit-node && pnpm install --frozen-lockfile && pnpm test" |