feat!: migrate to plugin v2 #967
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: CI | |
on: | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
- "img/**" | |
# Manage concurrency to stop running jobs and start new ones in case of new commit pushed | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
commit-lint: | |
runs-on: ubuntu-latest | |
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Setup dependencies, cache and install | |
uses: ./.github/actions/install | |
- name: Lint commits | |
uses: wagoid/commitlint-github-action@v6 | |
env: | |
NODE_PATH: ${{ github.workspace }}/node_modules | |
continue-on-error: true | |
pull-request-lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Lint PR | |
uses: amannn/action-semantic-pull-request@v5 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
npm-lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Setup dependencies, cache and install | |
uses: ./.github/actions/install | |
- name: Check outdated dependencies | |
run: npm outdated | |
- name: Check unused dependencies | |
run: npm run lint:dependencies | |
- name: Audit dependencies | |
run: npm audit | |
megalinter: | |
runs-on: ubuntu-latest | |
steps: | |
# Git Checkout | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
# MegaLinter | |
- name: MegaLinter | |
# You can override MegaLinter flavor used to have faster performances | |
# More info at https://megalinter.io/latest/flavors/ | |
uses: oxsecurity/megalinter/flavors/javascript@v7 | |
env: | |
# All available variables are described in documentation | |
# https://megalinter.io/latest/config-file/ | |
APPLY_FIXES: all | |
VALIDATE_ALL_CODEBASE: true | |
# ADD CUSTOM ENV VARIABLES HERE TO OVERRIDE VALUES OF .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: megalinter-reports | |
path: | | |
megalinter-reports | |
mega-linter.log | |
incremental-mutation-testing: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Setup dependencies, cache and install | |
uses: ./.github/actions/install | |
- name: Incremental Mutation testing | |
run: npm run test:mutation:incremental | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: mutation-testing-reports | |
path: reports/mutation | |
build: | |
uses: ./.github/workflows/reusable-build.yml | |
secrets: inherit | |
publish-dev: | |
needs: [build] | |
runs-on: ubuntu-latest | |
if: ${{ github.event.pull_request.merged != 'true' && github.actor != 'dependabot[bot]' }} | |
outputs: | |
devChannel: ${{ steps.define_dev_channel.outputs.DEV_CHANNEL }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
registry-url: 'https://registry.npmjs.org' | |
- name: Setup dependencies, cache and install | |
uses: ./.github/actions/install | |
- uses: jwalton/gh-find-current-pr@master | |
id: pr-number | |
- name: Set dev channel value | |
run: echo "DEV_CHANNEL=dev-${{ steps.pr-number.outputs.pr }}" >> "$GITHUB_ENV" | |
- name: Setup github user | |
run: | | |
git config --global user.email "${{ env.DEV_CHANNEL }}@github.com" | |
git config --global user.name "${{ env.DEV_CHANNEL }}" | |
- name: NPM Publish dev channel | |
run: | | |
CURRENT_VERSION=$(jq -r '.version' package.json) | |
DEV_TAG="${{ env.DEV_CHANNEL }}.${{ github.run_id }}-${{ github.run_attempt }}" | |
npm version "${CURRENT_VERSION}-${DEV_TAG}" | |
npm publish --access public --tag "${{ env.DEV_CHANNEL }}" | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Comment PR dev channel | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
message: | | |
Published under `${{ env.DEV_CHANNEL }}` npm channel. | |
```sh | |
$ sf plugins install sfdx-git-delta@${{ env.DEV_CHANNEL }} | |
``` | |
comment_tag: dev-publish | |
mode: recreate | |
- name: Set dev channel value | |
id: define_dev_channel | |
run: echo "DEV_CHANNEL=${{ env.DEV_CHANNEL }}" >> "$GITHUB_OUTPUT" | |
e2e-check: | |
uses: ./.github/workflows/run-e2e-tests.yml | |
needs: [publish-dev] | |
with: | |
channel: ${{ needs.publish-dev.outputs.devChannel }} | |
secrets: inherit |