diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 23dcb184..7419b4cf 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -17,44 +17,32 @@ jobs: - uses: actions/setup-node@v3 - uses: bahmutov/npm-install@v1 - name: If this step fails run 'yarn format' then commit again. - run: | - PACKAGE_MANAGER=npm - if [ -f "./yarn.lock" ]; then - PACKAGE_MANAGER=yarn - fi - $PACKAGE_MANAGER run format:check + run: yarn format:check test: runs-on: ${{ matrix.os }} needs: test_lint strategy: matrix: - node: [ '16' ] + node: [ '17' ] os: [ ubuntu-latest ] name: Test with Node v${{ matrix.node }} on ${{ matrix.os }} steps: - - name: Tell if project is using npm or yarn - id: step1 - uses: garronej/ts-ci@v2.0.2 - with: - action_name: tell_if_project_uses_npm_or_yarn - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} - uses: bahmutov/npm-install@v1 - - if: steps.step1.outputs.npm_or_yarn == 'yarn' - run: | - yarn build - yarn test - - if: steps.step1.outputs.npm_or_yarn == 'npm' - run: | - npm run build - npm test + - run: yarn build + - run: yarn test + - run: yarn test:keycloakify-starter + check_if_version_upgraded: name: Check if version upgrade - # We run this only if it's a push on the default branch or if it's a PR from a - # branch (meaning not a PR from a fork). It would be more straightforward to test if secrets.NPM_TOKEN is - # defined but GitHub Action don't allow it yet. + # When someone forks the repo and opens a PR we want to enables the tests to be run (the previous jobs) + # but obviously only us should be allowed to release. + # In the following check we make sure that we own the branch this CI workflow is running on before continuing. + # Without this check, trying to release would fail anyway because only us have the correct secret.NPM_TOKEN but + # it's cleaner to stop the execution instead of letting the CI crash. if: | github.event_name == 'push' || github.event.pull_request.head.repo.owner.login == github.event.pull_request.base.repo.owner.login @@ -66,7 +54,7 @@ jobs: is_upgraded_version: ${{ steps.step1.outputs.is_upgraded_version }} is_pre_release: ${{steps.step1.outputs.is_pre_release }} steps: - - uses: garronej/ts-ci@v2.0.2 + - uses: garronej/ts-ci@v2.1.0 id: step1 with: action_name: is_package_json_version_upgraded @@ -74,8 +62,8 @@ jobs: create_github_release: runs-on: ubuntu-latest - # We create a release only if the version have been upgraded and we are on the main branch - # or if we are on a branch of the repo that has an PR open on main. + # We create release only if the version in the package.json have been upgraded and this CI is running against the main branch. + # We allow branches with a PR open on main to publish pre-release (x.y.z-rc.u) but not actual releases. if: | needs.check_if_version_upgraded.outputs.is_upgraded_version == 'true' && ( @@ -109,15 +97,13 @@ jobs: with: registry-url: https://registry.npmjs.org/ - uses: bahmutov/npm-install@v1 - - run: | - PACKAGE_MANAGER=npm - if [ -f "./yarn.lock" ]; then - PACKAGE_MANAGER=yarn - fi - $PACKAGE_MANAGER run build - - run: npx -y -p denoify@1.2.2 enable_short_npm_import_path + - run: yarn build + - run: npx -y -p denoify@1.3.0 enable_short_npm_import_path env: DRY_RUN: "0" + - uses: garronej/ts-ci@v2.1.0 + with: + action_name: remove_dark_mode_specific_images_from_readme - name: Publishing on NPM run: | if [ "$(npm show . version)" = "$VERSION" ]; then @@ -136,4 +122,4 @@ jobs: env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }} - IS_PRE_RELEASE: ${{ needs.check_if_version_upgraded.outputs.is_pre_release }} + IS_PRE_RELEASE: ${{ needs.check_if_version_upgraded.outputs.is_pre_release }} \ No newline at end of file