chore(deps): update dependency tsx to v4.10.5 #4611
Workflow file for this run
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: Main | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
types: [ opened, synchronize ] | |
permissions: | |
contents: read | |
jobs: | |
detect-website-changes: | |
name: 'Detect website changes' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-detect-changes.yaml@main' | |
with: | |
files: | | |
documentation/** | |
detect-source-code-changes: | |
name: 'Detect source code and configuration changes' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-detect-changes.yaml@main' | |
with: | |
files: | | |
.github/actions/** | |
.github/workflows/main*.yaml | |
bin/** | |
packages/** | |
integration/** | |
* | |
files-ignore: | | |
.github/workflows/chore-*.yaml | |
.github/workflows/pr-*.yaml | |
.gitpod/** | |
.gitpod.yml | |
.husky/** | |
.vscode/** | |
documentation/** | |
*.md | |
.commitlintrc.js | |
.cz-*.js | |
lint: | |
name: 'Lint' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-node-step.yaml@main' | |
with: | |
node-version: 18.x | |
npm-install-command: npm ci | |
command: make lint | |
compile: | |
name: 'Compile' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-node-step.yaml@main' | |
with: | |
node-version: 18.x | |
npm-install-command: make BOOTSTRAP_SCOPE=libs install | |
command: make COMPILE_SCOPE=libs compile | |
upload-artifact-name: 'compiled-libs' | |
upload-artifact-path: 'package.json "integration/*/lib/*" "packages/*/lib/*" "packages/*/esm/*"' | |
# | |
# Test | |
# | |
test-linux-node-lts-active: | |
name: 'Test: Linux, LTS' | |
needs: | |
- detect-source-code-changes | |
- lint | |
- compile | |
if: needs.detect-source-code-changes.outputs.has_changes == 'true' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-node-step.yaml@main' | |
with: | |
node-version: 18.x | |
npm-install-command: make BOOTSTRAP_SCOPE=@serenity-js install | |
download-artifact-name: 'compiled-libs' | |
command: make test | |
upload-artifact-name: 'test-reports' | |
upload-artifact-path: 'package.json "packages/*/target/**/*"' | |
test-linux-node-lts-previous: | |
name: 'Test: Linux, LTS-1' | |
needs: | |
- detect-source-code-changes | |
- lint | |
- compile | |
if: needs.detect-source-code-changes.outputs.has_changes == 'true' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-node-step.yaml@main' | |
with: | |
node-version: 16.x | |
npm-install-command: make BOOTSTRAP_SCOPE=@serenity-js install | |
download-artifact-name: 'compiled-libs' | |
command: make test-no-coverage-node16 | |
test-linux-node-lts-next: | |
name: 'Test: Linux, LTS+1' | |
needs: | |
- detect-source-code-changes | |
- lint | |
- compile | |
if: needs.detect-source-code-changes.outputs.has_changes == 'true' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-node-step.yaml@main' | |
with: | |
node-version: 20.x | |
npm-install-command: make BOOTSTRAP_SCOPE=@serenity-js install | |
download-artifact-name: 'compiled-libs' | |
command: make test-no-coverage | |
test-windows-node-lts-active: | |
name: 'Test: Windows, LTS' | |
needs: | |
- detect-source-code-changes | |
- lint | |
- compile | |
if: needs.detect-source-code-changes.outputs.has_changes == 'true' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-node-step.yaml@main' | |
with: | |
runs-on: 'windows-latest' | |
node-version: 18.x | |
npm-install-command: make BOOTSTRAP_SCOPE=@serenity-js install | |
download-artifact-name: 'compiled-libs' | |
command: make test-no-coverage | |
# | |
# Integration | |
# | |
test-integration-playwright: | |
name: 'Integration: Playwright' | |
needs: | |
- detect-source-code-changes | |
- lint | |
- compile | |
if: needs.detect-source-code-changes.outputs.has_changes == 'true' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-integration-test-step.yaml@main' | |
with: | |
modules: | | |
[ | |
"playwright-test", | |
"playwright-test-ct", | |
"playwright-web" | |
] | |
runs-on: 'ubuntu-latest' | |
node-version: 18.x | |
npm-install-command: make BOOTSTRAP_SCOPE=@integration install | |
download-artifact-name: 'compiled-libs' | |
command: | | |
mkdir target && \ | |
npx --no playwright install --with-deps && \ | |
make INTEGRATION_SCOPE=$INTEGRATION_MODULE integration-test | |
upload-artifact-name: 'test-integration-coverage-reports-playwright' | |
upload-artifact-path: 'package.json "integration/*/target/**/*"' | |
test-integration-protractor: | |
name: 'Integration: Protractor' | |
needs: | |
- detect-source-code-changes | |
- lint | |
- compile | |
if: needs.detect-source-code-changes.outputs.has_changes == 'true' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-integration-test-step.yaml@main' | |
with: | |
modules: | | |
[ | |
"protractor-test-runners", | |
"protractor-web" | |
] | |
runs-on: 'ubuntu-latest' | |
node-version: 18.x | |
npm-install-command: make BOOTSTRAP_SCOPE=@integration install | |
download-artifact-name: 'compiled-libs' | |
command: 'make INTEGRATION_SCOPE=$INTEGRATION_MODULE integration-test' | |
upload-artifact-name: 'test-integration-coverage-reports-protractor' | |
upload-artifact-path: 'package.json "integration/*/target/**/*"' | |
test-integration: | |
name: 'Integration' | |
needs: | |
- detect-source-code-changes | |
- lint | |
- compile | |
if: needs.detect-source-code-changes.outputs.has_changes == 'true' | |
uses: 'serenity-js/serenity-js/.github/workflows/main-integration-test-step.yaml@main' | |
with: | |
modules: | | |
[ | |
"cucumber-1", | |
"cucumber-2", | |
"cucumber-3", | |
"cucumber-4", | |
"cucumber-5", | |
"cucumber-6", | |
"cucumber-7", | |
"cucumber-8", | |
"cucumber-9", | |
"cucumber-10", | |
"jasmine", | |
"mocha", | |
"rest", | |
"webdriverio-test-runners", | |
"webdriverio-web-devtools", | |
"webdriverio-web-webdriver", | |
] | |
runs-on: 'ubuntu-latest' | |
node-version: 18.x | |
npm-install-command: make BOOTSTRAP_SCOPE=@integration install | |
download-artifact-name: 'compiled-libs' | |
command: 'make INTEGRATION_SCOPE=$INTEGRATION_MODULE integration-test' | |
upload-artifact-name: 'test-integration-coverage-reports' | |
upload-artifact-path: 'package.json "integration/*/target/**/*"' | |
# | |
# Reporting | |
# | |
coverage: | |
name: 'Coverage' | |
needs: | |
- test-linux-node-lts-active | |
- test-integration | |
- test-integration-playwright | |
- test-integration-protractor | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup Node | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 18.x | |
- name: Install Node Modules | |
uses: bahmutov/npm-install@v1 | |
with: | |
install-command: npm ci | |
- name: Download all artifacts | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3 | |
- name: Decompress all artifacts to current directory | |
run: ls **/*.zip | xargs -n1 7z x -aoa | |
- name: Report coverage | |
run: make report | |
- name: Coveralls | |
uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0 | |
with: | |
github-token: ${{ github.token }} | |
path-to-lcov: 'target/coverage/lcov.info' | |
# https://github.com/actions/runner/issues/520 | |
- name: Get CodeClimate reporter ID | |
id: secrets | |
run: echo "CC_TEST_REPORTER_ID=${{ secrets.CC_TEST_REPORTER_ID }}" >> $GITHUB_OUTPUT | |
- name: CodeClimate | |
if: steps.secrets.outputs.CC_TEST_REPORTER_ID | |
uses: paambaati/codeclimate-action@a1831d7162ea1fbc612ffe5fb3b90278b7999d59 # v5.0.0 | |
env: | |
CC_TEST_REPORTER_ID: ${{ steps.secrets.outputs.CC_TEST_REPORTER_ID }} | |
with: | |
coverageLocations: | | |
${{github.workspace}}/target/coverage/lcov.info:lcov | |
debug: false | |
# | |
# NPM artifact publishing | |
# | |
artifacts-publish: | |
name: 'NPM: publish artifacts' | |
if: github.ref == 'refs/heads/main' | |
permissions: | |
contents: write | |
id-token: write | |
runs-on: ubuntu-latest | |
needs: | |
- test-linux-node-lts-active | |
- test-linux-node-lts-previous | |
- test-windows-node-lts-active | |
- test-integration | |
- test-integration-playwright | |
- test-integration-protractor | |
steps: | |
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/setup-lerna | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
git_user_email: ${{ secrets.RELEASE_GH_EMAIL }} | |
git_username: ${{ secrets.RELEASE_GH_USERNAME }} | |
npm_token: ${{ secrets.NPM_TOKEN }} | |
- name: Download compiled libs | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3 | |
with: | |
name: compiled-libs | |
- name: Decompress Libs | |
run: 7z x -aoa compiled-libs.zip | |
- name: Setup Node | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 18.x | |
- name: Install Node Modules (root) | |
uses: bahmutov/npm-install@v1 | |
with: | |
install-command: npm ci | |
- name: Publish artifacts | |
run: npm run lerna:publish | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Print versions | |
run: npm run version:print >> $GITHUB_STEP_SUMMARY | |
- name: Upload changelog | |
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3 | |
with: | |
retention-days: 3 | |
name: changelog | |
path: | | |
CHANGELOG.md | |
- name: Upload package.json files | |
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3 | |
with: | |
retention-days: 3 | |
name: package-json | |
path: | | |
package.json | |
packages/*/package.json | |
# | |
# Website | |
# | |
website: | |
name: 'Website' | |
needs: | |
- detect-website-changes | |
- detect-source-code-changes | |
- lint | |
- compile | |
- artifacts-publish | |
if: | | |
always() && | |
( | |
( | |
needs.detect-website-changes.result == 'success' && | |
needs.detect-website-changes.outputs.has_changes == 'true' | |
) || | |
( | |
needs.detect-source-code-changes.result == 'success' && | |
needs.detect-source-code-changes.outputs.has_changes == 'true' && | |
needs.artifacts-publish.result == 'success' | |
) | |
) | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup Node | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 18.x | |
- name: Install Node Modules | |
uses: bahmutov/npm-install@v1 | |
with: | |
install-command: make BOOTSTRAP_SCOPE=site install | |
- name: Download compiled libs | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3 | |
with: | |
name: 'compiled-libs' | |
- name: Decompress compiled libs | |
run: 7z x -aoa compiled-libs.zip | |
# We generate an updated changelog only when there are artifacts to be published | |
- name: Download changelog | |
if: github.ref == 'refs/heads/main' | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3 | |
continue-on-error: true | |
with: | |
name: changelog | |
- name: Download package.json files | |
if: github.ref == 'refs/heads/main' | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3 | |
continue-on-error: true | |
with: | |
name: package-json | |
- name: Build website | |
run: make site | |
- name: List all (debug) | |
run: tree | |
- name: Publish website | |
uses: JamesIves/github-pages-deploy-action@ec9c88baef04b842ca6f0a132fd61c762aa6c1b0 # v4.6.0 | |
if: github.ref == 'refs/heads/main' | |
with: | |
BRANCH: gh-pages | |
FOLDER: documentation/serenity-js.org/build | |
CLEAN: true |