chore(deps): lock file maintenance #5646
This file contains 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-latest, windows-2019 ] | |
os: [ ubuntu-latest ] | |
node-version: [ 16, 18, 20, 22 ] | |
steps: | |
- name: Cancel Workflow Action | |
uses: styfle/cancel-workflow-action@0.12.1 | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Enable corepack | |
run: | | |
corepack enable | |
corepack prepare yarn@stable --activate | |
- name: Activate cache for Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
cache: 'yarn' | |
- uses: microsoft/playwright-github-action@v1 | |
- 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 | |
env: | |
YARN_IGNORE_NODE: 1 | |
- name: Build | |
run: yarn ci:build | |
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-latest | |
steps: | |
- name: Checkout Source code | |
uses: actions/checkout@v4 | |
- name: Use Node.js 20 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable corepack | |
run: | | |
corepack enable | |
corepack prepare yarn@stable --activate | |
- name: Activate cache for Node.js 20 | |
uses: actions/setup-node@v4 | |
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 }} | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js 20 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable corepack | |
run: | | |
corepack enable | |
corepack prepare yarn@stable --activate | |
- name: Activate cache for Node.js 20 | |
uses: actions/setup-node@v4 | |
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-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js 20 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable corepack | |
run: | | |
corepack enable | |
corepack prepare yarn@stable --activate | |
- name: Activate cache for Node.js 20 | |
uses: actions/setup-node@v4 | |
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)" >> $GITHUB_OUTPUT | |
- name: Report nothing to release | |
if: steps.changed-packages.outputs.changed_packages == '0' | |
run: echo "Nothing to release" | |
- name: Release @next | |
if: steps.changed-packages.outputs.changed_packages != '0' | |
run: | | |
git config --global user.name 'Apify Release Bot' | |
git config --global user.email 'noreply@apify.com' | |
yarn turbo copy --force -- --canary --preid=beta | |
git commit -am "chore: bump canary versions [skip ci]" | |
echo "access=public" > .npmrc | |
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> .npmrc | |
yarn publish:next --yes --no-verify-access | |
env: | |
NPM_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_NPM_TOKEN }} | |
GIT_USER: 'noreply@apify.com:${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}' | |
GH_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} | |
- name: Collect versions for Docker images | |
id: versions | |
run: | | |
crawlee=`node -p "require('./packages/crawlee/package.json').version"` | |
echo "crawlee=$crawlee" >> $GITHUB_OUTPUT | |
- name: Trigger Docker image builds | |
uses: peter-evans/repository-dispatch@v3 | |
# 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/crawlee | |
event-type: crawlee-docker-image-bump | |
client-payload: > | |
{ | |
"crawlee_version": "${{ steps.versions.outputs.crawlee }}" | |
} |