[pull] master from apify:master #1581
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: Check | |
| on: | |
| push: | |
| branches: [ master, renovate/** ] | |
| pull_request: | |
| branches: [ master ] | |
| env: | |
| YARN_IGNORE_NODE: 1 | |
| RETRY_TESTS: 1 | |
| jobs: | |
| # `yarn install` is done in a separate job and cached to speed up the following jobs. | |
| build_and_test: | |
| name: Build & Test | |
| if: (!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, 'docs:')) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # tests on windows are extremely unstable | |
| # os: [ ubuntu-22.04, windows-2019 ] | |
| os: [ ubuntu-22.04 ] | |
| node-version: [ 18, 20, 22, 24 ] | |
| steps: | |
| - name: Cancel Workflow Action | |
| uses: styfle/[email protected] | |
| with: | |
| access_token: ${{ github.token }} | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| package-manager-cache: false | |
| - name: Enable corepack | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@stable --activate | |
| - name: Activate cache for Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| cache: 'yarn' | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ matrix.node-version }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ matrix.node-version }}-${{ github.ref_name }}- | |
| - name: Install Dependencies | |
| run: | | |
| yarn | |
| yarn playwright install --with-deps | |
| env: | |
| YARN_IGNORE_NODE: 1 | |
| - name: Build | |
| run: yarn ci:build | |
| env: | |
| YARN_IGNORE_NODE: 1 | |
| - name: Test TS | |
| run: yarn tsc-check-tests | |
| env: | |
| YARN_IGNORE_NODE: 1 | |
| - name: Tests | |
| run: yarn test | |
| env: | |
| YARN_IGNORE_NODE: 1 | |
| docs: | |
| name: Docs build | |
| if: (!contains(github.event.head_commit.message, '[skip ci]') && github.ref != 'refs/heads/master') | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout Source code | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js 20 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| package-manager-cache: false | |
| - name: Enable corepack | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@stable --activate | |
| - name: Activate cache for Node.js 20 | |
| uses: actions/setup-node@v6 | |
| with: | |
| cache: 'yarn' | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ github.ref_name }}- | |
| - name: Install Dependencies | |
| run: yarn | |
| - name: Build & deploy docs | |
| run: | | |
| cd website | |
| yarn | |
| yarn build | |
| env: | |
| APIFY_SIGNING_TOKEN: ${{ secrets.APIFY_SIGNING_TOKEN }} | |
| SEGMENT_TOKEN: ${{ secrets.SEGMENT_TOKEN }} | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js 20 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| package-manager-cache: false | |
| - name: Enable corepack | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@stable --activate | |
| - name: Activate cache for Node.js 20 | |
| uses: actions/setup-node@v6 | |
| with: | |
| cache: 'yarn' | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ github.ref_name }}- | |
| - name: Install Dependencies | |
| run: yarn | |
| - name: ESLint | |
| run: yarn lint | |
| - name: Biome format | |
| run: yarn format:check | |
| release_next: | |
| name: Release @next | |
| if: github.event_name == 'push' && contains(github.event.ref, 'master') && (!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, 'docs:')) | |
| needs: build_and_test | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} | |
| fetch-depth: 0 | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| package-manager-cache: false | |
| - name: Enable corepack | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@stable --activate | |
| - name: Activate cache for Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| cache: 'yarn' | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ github.ref_name }}- | |
| - name: Install Dependencies | |
| run: yarn | |
| - name: Build | |
| run: yarn ci:build | |
| - name: Generate changed packages list | |
| id: changed-packages | |
| run: | | |
| echo "changed_packages=$(node ./node_modules/.bin/lerna changed -p | wc -l | xargs)" | tee -a $GITHUB_OUTPUT | |
| - name: Report nothing to release | |
| if: steps.changed-packages.outputs.changed_packages == '0' | |
| run: echo "Nothing to release" | |
| - name: Publish packages | |
| if: steps.changed-packages.outputs.changed_packages != '0' | |
| uses: apify/workflows/execute-workflow@main | |
| with: | |
| workflow: publish-to-npm.yml | |
| inputs: > | |
| { | |
| "ref": "${{ steps.commit.outputs.commit_long_sha || github.sha }}", | |
| "dist-tag": "next" | |
| } | |
| - name: Collect versions for Docker images | |
| id: versions | |
| run: | | |
| crawlee=`node -p "require('./packages/crawlee/package.json').version"` | |
| echo "crawlee=$crawlee" | tee -a $GITHUB_OUTPUT | |
| - name: Trigger Docker image builds | |
| uses: peter-evans/repository-dispatch@v4 | |
| # Trigger next images only if we have something new pushed | |
| if: steps.changed-packages.outputs.changed_packages != '0' | |
| with: | |
| token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} | |
| repository: apify/apify-actor-docker | |
| event-type: build-node-images | |
| client-payload: > | |
| { | |
| "crawlee_version": "${{ steps.versions.outputs.crawlee }}", | |
| "release_tag": "beta" | |
| } |