Skip to content

chore(deps): update dependency tsx to v4.10.5 #4611

chore(deps): update dependency tsx to v4.10.5

chore(deps): update dependency tsx to v4.10.5 #4611

Workflow file for this run

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