Skip to content

chore(deps): update dependency semver to v7.6.2 #16225

chore(deps): update dependency semver to v7.6.2

chore(deps): update dependency semver to v7.6.2 #16225

Workflow file for this run

name: Checks
on:
pull_request:
types: [opened, synchronize]
push:
branches:
- main
merge_group:
types: [checks_requested]
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
# Uncomment the line below to enable artifacts debugging
# env:
# ACTIONS_RUNNER_DEBUG: true
jobs:
setup:
runs-on: ubuntu-22.04
timeout-minutes: 10
steps:
- name: debugging - dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup
id: setup
uses: ./.github/actions/setup
# Computing jobs that should run
- name: Setting diff outputs variables
id: diff
shell: bash
run: |
previousCommit=${{ github.event.before }}
baseRef=${{ github.base_ref }}
origin=$( [[ -z $baseRef ]] && echo $previousCommit || echo "origin/$baseRef" )
yarn workspace scripts setRunVariables "$origin"
- name: Compute specs matrix
id: spec-matrix
shell: bash
run: yarn workspace scripts createMatrix ${{ steps.diff.outputs.ORIGIN_BRANCH }}
- name: Compute the client codegen matrix
id: gen-matrix
shell: bash
run: yarn workspace scripts createMatrix ${{ steps.diff.outputs.ORIGIN_BRANCH }} clients
- name: check that custom actions are built
run: |
yarn workspace scripts build:actions
diff=$(git status --porcelain ./scripts/ci/actions | wc -l)
if [[ $diff > 0 ]]; then
echo "Build the custom github actions by running \`yarn workspace scripts build:actions\`"
fi
exit $diff
- name: Lint GitHub actions
run: yarn github-actions:lint
- name: Lint generators
run: |
yarn cli format java generators
diff=$(git status --porcelain ./generators | wc -l)
if [[ $diff > 0 ]]; then
echo "Format the generators folder by running 'apic format java generators'"
fi
exit $diff
- name: Lint json files
run: |
yarn eslint --ext=json .
echo 'Use yarn fix:json to fix issues'
outputs:
RUN_SCRIPTS: ${{ steps.diff.outputs.GITHUB_ACTIONS_CHANGED > 0 || steps.diff.outputs.SCRIPTS_CHANGED > 0 }}
SPECS_MATRIX: ${{ steps.spec-matrix.outputs.MATRIX }}
RUN_GEN: ${{ steps.gen-matrix.outputs.RUN_GEN }}
GEN_MATRIX: ${{ steps.gen-matrix.outputs.GEN_MATRIX }}
JAVASCRIPT_DATA: ${{ steps.gen-matrix.outputs.JAVASCRIPT_DATA }}
RUN_GEN_JAVASCRIPT: ${{ steps.gen-matrix.outputs.RUN_GEN_JAVASCRIPT }}
SWIFT_DATA: ${{ steps.gen-matrix.outputs.SWIFT_DATA }}
RUN_MACOS_SWIFT_CTS: ${{ steps.gen-matrix.outputs.RUN_MACOS_SWIFT_CTS }}
scripts:
runs-on: ubuntu-22.04
timeout-minutes: 10
needs: setup
if: ${{ needs.setup.outputs.RUN_SCRIPTS == 'true' }}
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
type: minimal
- name: Check script linting
run: yarn scripts:lint
- name: Test scripts
run: yarn scripts:test
- name: Test custom eslint plugin
run: yarn workspace eslint-plugin-automation-custom test
specs:
runs-on: ubuntu-22.04
timeout-minutes: 10
needs: setup
steps:
- uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
type: minimal
- name: Building specs
run: yarn cli build specs ${{ fromJSON(needs.setup.outputs.SPECS_MATRIX).toRun }}
- name: Store bundled specs
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: specs
path: ${{ fromJSON(needs.setup.outputs.SPECS_MATRIX).bundledPath }}
client_javascript_utils:
timeout-minutes: 10
runs-on: ubuntu-22.04
needs: setup
if: ${{ needs.setup.outputs.RUN_GEN_JAVASCRIPT == 'true' }}
strategy:
matrix:
client:
- client-common
- requester-browser-xhr
- requester-node-http
- requester-fetch
steps:
- uses: actions/checkout@v4
- name: Cache '${{ matrix.client }}' client folder
if: ${{ github.ref != 'refs/heads/main' }}
id: cache
uses: actions/cache@v4
with:
key: |
${{ matrix.client }}-${{ hashFiles(
format('clients/algoliasearch-client-javascript/packages/{0}/**', matrix.client),
'clients/algoliasearch-client-javascript/yarn.lock'
)}}
path: clients/algoliasearch-client-javascript/packages/${{ matrix.client }}
- name: Remove generated clients
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
run: cd clients/algoliasearch-client-javascript/packages && ls | grep -v -E "(client-common|requester-*)" | xargs rm -rf
- name: Setup
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
uses: ./.github/actions/setup
with:
type: minimal
language: javascript
- name: Build '${{ matrix.client }}' client
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
run: cd clients/algoliasearch-client-javascript && yarn build:many @algolia/${{ matrix.client }}
- name: Run tests for '${{ matrix.client }}'
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
run: cd clients/algoliasearch-client-javascript && yarn workspace @algolia/${{ matrix.client }} test
client_gen_javascript:
timeout-minutes: 10
runs-on: ubuntu-22.04
needs:
- setup
- client_javascript_utils
- specs
- scripts
if: |
always() &&
needs.setup.outputs.RUN_GEN_JAVASCRIPT == 'true' &&
!contains(needs.*.result, 'cancelled') &&
!contains(needs.*.result, 'failure')
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_ADMIN_KEY: ${{ secrets.ALGOLIA_ADMIN_KEY }}
MONITORING_API_KEY: ${{ secrets.MONITORING_API_KEY }}
steps:
- uses: actions/checkout@v4
- name: Download specs artifacts
uses: ./scripts/ci/actions/restore-artifacts
with:
type: specs
- name: Remove generated clients
if: ${{ startsWith(env.head_ref, 'chore/prepare-release-') }}
run: |
cd clients/algoliasearch-client-javascript/packages
ls | grep -v -E "(client-common|requester-*|algoliasearch)" | xargs rm -rf
cd algoliasearch
ls | grep -v -E "(__tests__|jest.config.ts)" | xargs rm -rf
- name: Setup
uses: ./.github/actions/setup
with:
language: javascript
- name: Generate clients
run: yarn cli generate javascript ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).toRun }}
- name: Update `yarn.lock` for JavaScript
run: cd clients/algoliasearch-client-javascript && YARN_ENABLE_HARDENED_MODE=0 YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install
- name: Build clients
run: ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).buildCommand }}
- name: Test JavaScript bundle size
if: ${{ startsWith(env.head_ref, 'chore/prepare-release-') }}
run: cd clients/algoliasearch-client-javascript && yarn test:size
- name: Run JavaScript 'algoliasearch' client tests
if: ${{ contains(fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).toRun,'algoliasearch') }}
run: cd clients/algoliasearch-client-javascript && yarn workspace algoliasearch test
- name: Remove previous CTS output
run: rm -rf ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).testsToDelete }}
- name: Generate CTS
run: yarn cli cts generate javascript ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).toRun }}
# JavaScript test deps (needs to be cached because they are huge and inefficient)
- name: Get yarn js test cache directory path
shell: bash
id: yarn-cache-dir-tests
run: echo "dir=$(cd tests/output/javascript && yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- name: Restore Yarn js tests
uses: actions/cache@v4
with:
path: ${{ steps.yarn-cache-dir-tests.outputs.dir || 'tests/output/javascript/.yarn/cache' }}
key: yarn-cache-tests-${{ hashFiles('tests/output/javascript/yarn.lock') }}
- name: Cache js tests node modules
uses: actions/cache@v4
with:
path: tests/output/javascript/node_modules
key: node-modules-tests-${{ hashFiles('tests/output/javascript/yarn.lock') }}
- name: Run CTS
run: yarn cli cts run javascript ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).toRun }}
- name: Generate code snippets for documentation
run: yarn cli snippets javascript ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).toRun }}
- name: Zip artifact before storing
run: zip -r -y clients-javascript.zip clients/algoliasearch-client-javascript ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).testsToStore }} ${{ fromJSON(needs.setup.outputs.JAVASCRIPT_DATA).snippetsToStore }} -x "**/node_modules**" "**/.yarn/cache/**" "**/.yarn/install-state.gz" "**/build/**" "**/dist/**" "**/.gradle/**" "**/bin/**" "**/.nx/**"
- name: Store javascript clients
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: clients-javascript
path: clients-javascript.zip
client_gen:
timeout-minutes: 20
runs-on: ubuntu-22.04
needs:
- setup
- specs
- scripts
if: |
always() &&
needs.setup.outputs.RUN_GEN == 'true' &&
!contains(needs.*.result, 'cancelled') &&
!contains(needs.*.result, 'failure')
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.setup.outputs.GEN_MATRIX) }}
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_ADMIN_KEY: ${{ secrets.ALGOLIA_ADMIN_KEY }}
MONITORING_API_KEY: ${{ secrets.MONITORING_API_KEY }}
steps:
- uses: actions/checkout@v4
- name: Download specs artifacts
uses: ./scripts/ci/actions/restore-artifacts
with:
type: specs
- name: Setup
uses: ./.github/actions/setup
with:
language: ${{ matrix.client.language }}
- name: Generate clients
run: yarn cli generate ${{ matrix.client.language }} ${{ matrix.client.toRun }}
- name: Update composer.lock
if: ${{ matrix.client.language == 'php' && startsWith(env.head_ref, 'chore/renovateBaseBranch') }}
run: cd ${{ matrix.client.path }} && composer update
- name: Check for file duplicates in Swift
if: ${{ matrix.client.language == 'swift' }}
run: |
set -eo pipefail
cd clients/algoliasearch-client-swift
find Sources -type f | rev | cut -d '/' -f1 | rev | sort | uniq -d
[ $(find Sources -type f | rev | cut -d '/' -f1 | rev | sort | uniq -d | wc -l) -gt 0 ] && echo "Duplicates found" && exit 1 || echo "No duplicate found"
- name: Build clients
run: ${{ matrix.client.buildCommand }}
- name: Run Java 'algoliasearch' public API validation
if: ${{ matrix.client.language == 'java' }}
run: |
cd ${{ matrix.client.path }}
./gradlew :api:japicmp || exit 0
FILE=${{ matrix.client.path }}/api/build/reports/japi.txt
if [[ -f "$FILE" ]]; then
cat $FILE
fi
- name: Remove previous CTS output
run: rm -rf ${{ matrix.client.testsToDelete }} || true
- name: Generate CTS
run: yarn cli cts generate ${{ matrix.client.language }} ${{ matrix.client.toRun }}
- name: Run CTS
run: yarn cli cts run ${{ matrix.client.language }} ${{ matrix.client.toRun }}
- name: Generate code snippets for documentation
run: yarn cli snippets ${{ matrix.client.language }} ${{ matrix.client.toRun }}
- name: Zip artifact before storing
run: zip -r -y clients-${{ matrix.client.language }}.zip ${{ matrix.client.path }} ${{ matrix.client.testsToStore }} ${{ matrix.client.snippetsToStore }} -x "**/node_modules**" "**/__pycache__/**" "**/.yarn/cache/**" "**/build/**" "**/.build/**" "**/dist/**" "**/.gradle/**" "**/bin/**" "**/vendor/**" "**/target/**" "**/.dart_tool/**"
- name: Store ${{ matrix.client.language }} clients
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: clients-${{matrix.client.language }}
path: clients-${{matrix.client.language }}.zip
swift_cts_macos:
timeout-minutes: 20
runs-on: macos-latest
needs:
- setup
- client_gen
if: |
always() &&
startsWith(github.head_ref, 'chore/prepare-release-') &&
needs.setup.outputs.RUN_GEN == 'true' &&
needs.setup.outputs.RUN_MACOS_SWIFT_CTS == 'true' &&
!contains(needs.*.result, 'cancelled') &&
!contains(needs.*.result, 'failure')
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_ADMIN_KEY: ${{ secrets.ALGOLIA_ADMIN_KEY }}
MONITORING_API_KEY: ${{ secrets.MONITORING_API_KEY }}
steps:
- uses: actions/checkout@v4
- name: Download artifacts
uses: ./scripts/ci/actions/restore-artifacts
with:
type: languages
languages: |
swift
- name: Setup
uses: ./.github/actions/setup
with:
type: minimal
language: swift
- name: Run CTS
run: yarn cli cts run swift ${{ fromJSON(needs.setup.outputs.SWIFT_DATA).toRun }}
codegen:
runs-on: ubuntu-22.04
timeout-minutes: 15
needs:
- setup
- client_gen
- client_gen_javascript
- swift_cts_macos
if: |
always() &&
(needs.swift_cts_macos.result == 'success' || needs.swift_cts_macos.result == 'skipped') &&
!contains(needs.*.result, 'cancelled') &&
!contains(needs.*.result, 'failure')
outputs:
success: ${{ steps.setoutput.outputs.success }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
token: ${{ secrets.ALGOLIA_BOT_TOKEN }}
- name: Download all artifacts
uses: ./scripts/ci/actions/restore-artifacts
with:
type: all
- name: Setup
uses: ./.github/actions/setup
with:
type: minimal
- name: Generate documentation specs with code snippets
run: yarn cli build specs ${{ fromJSON(needs.setup.outputs.SPECS_MATRIX).toRun }} --docs
- name: Build website
run: yarn website:build
- name: Deploy documentation
uses: nwtgck/actions-netlify@v3.0
with:
publish-dir: 'website/build'
production-branch: main
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy-message: 'Deploy from GitHub Actions'
enable-pull-request-comment: true
enable-commit-comment: true
overwrites-pull-request-comment: true
netlify-config-path: ./netlify.toml
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 5
- name: Push generated code
id: pushGeneratedCode
run: yarn workspace scripts pushGeneratedCode
env:
GITHUB_TOKEN: ${{ secrets.ALGOLIA_BOT_TOKEN }}
PR_NUMBER: ${{ github.event.number }}
- name: Spread generation to each repository
id: spreadGeneration
if: github.ref == 'refs/heads/main'
run: yarn workspace scripts spreadGeneration
env:
GITHUB_TOKEN: ${{ secrets.ALGOLIA_BOT_TOKEN }}
- name: Wait for all release CI
if: github.ref == 'refs/heads/main'
run: yarn workspace scripts waitForAllReleases ${{ steps.spreadGeneration.outputs.PUSHED_LANGUAGES }}
env:
GITHUB_TOKEN: ${{ secrets.ALGOLIA_BOT_TOKEN }}
- name: Set output
id: setoutput
run: echo "success=true" >> "$GITHUB_OUTPUT"
check_green:
runs-on: ubuntu-22.04
timeout-minutes: 10
needs:
- codegen
if: always()
steps:
- run: |
if [[ "${{ needs.codegen.outputs.success }}" != "true" ]]; then
echo "codegen step didn't succeed"
exit 1
fi