diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 796eafa..46b964f 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -2,9 +2,12 @@ name: automerge on: workflow_dispatch: schedule: - - cron: '17 2,5,8,11 * * *' + - cron: '42 2,5,8,11 * * *' jobs: automerge: - uses: oclif/github-workflows/.github/workflows/automerge.yml@main - secrets: inherit + uses: salesforcecli/github-workflows/.github/workflows/automerge.yml@main + secrets: + SVC_CLI_BOT_GITHUB_TOKEN: ${{ secrets.SVC_CLI_BOT_GITHUB_TOKEN }} + with: + mergeMethod: squash diff --git a/.github/workflows/create-github-release.yml b/.github/workflows/create-github-release.yml new file mode 100644 index 0000000..136463a --- /dev/null +++ b/.github/workflows/create-github-release.yml @@ -0,0 +1,28 @@ +name: create-github-release + +on: + push: + branches: + - main + # point at specific branches, or a naming convention via wildcard + - prerelease/** + tags-ignore: + - '*' + workflow_dispatch: + inputs: + prerelease: + type: string + description: 'Name to use for the prerelease: beta, dev, etc. NOTE: If this is already set in the package.json, it does not need to be passed in here.' + +jobs: + release: + # this job will throw if prerelease is true but it doesn't have a prerelease-looking package.json version + uses: salesforcecli/github-workflows/.github/workflows/create-github-release.yml@main + secrets: + SVC_CLI_BOT_GITHUB_TOKEN: ${{ secrets.SVC_CLI_BOT_GITHUB_TOKEN }} + with: + prerelease: ${{ inputs.prerelease }} + # If this is a push event, we want to skip the release if there are no semantic commits + # However, if this is a manual release (workflow_dispatch), then we want to disable skip-on-empty + # This helps recover from forgetting to add semantic commits ('fix:', 'feat:', etc.) + skip-on-empty: ${{ github.event_name == 'push' }} diff --git a/.github/workflows/failureNotifications.yml b/.github/workflows/failureNotifications.yml index 6b4118f..d3e86d7 100644 --- a/.github/workflows/failureNotifications.yml +++ b/.github/workflows/failureNotifications.yml @@ -3,7 +3,7 @@ name: failureNotifications on: workflow_run: workflows: - - version, tag and github release + - create-github-release - publish types: - completed diff --git a/.github/workflows/onRelease.yml b/.github/workflows/onRelease.yml index 8876db4..02bebdf 100644 --- a/.github/workflows/onRelease.yml +++ b/.github/workflows/onRelease.yml @@ -2,7 +2,7 @@ name: publish on: release: - types: [released] + types: [published] # support manual release in case something goes wrong and needs to be repeated or tested workflow_dispatch: inputs: @@ -11,9 +11,23 @@ on: type: string required: true jobs: + # parses the package.json version and detects prerelease tag (ex: beta from 4.4.4-beta.0) + getDistTag: + outputs: + tag: ${{ steps.distTag.outputs.tag }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.release.tag_name || inputs.tag }} + - uses: salesforcecli/github-workflows/.github/actions/getPreReleaseTag@main + id: distTag + npm: - uses: oclif/github-workflows/.github/workflows/npmPublish.yml@main + uses: salesforcecli/github-workflows/.github/workflows/npmPublish.yml@main + needs: [getDistTag] with: - tag: latest + tag: ${{ needs.getDistTag.outputs.tag || 'latest' }} githubTag: ${{ github.event.release.tag_name || inputs.tag }} - secrets: inherit + secrets: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4286a55..58755e8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,5 +5,11 @@ on: workflow_dispatch: jobs: - unit-tests: - uses: oclif/github-workflows/.github/workflows/unitTest.yml@main + yarn-lockfile-check: + uses: salesforcecli/github-workflows/.github/workflows/lockFileCheck.yml@main + linux-unit-tests: + needs: yarn-lockfile-check + uses: salesforcecli/github-workflows/.github/workflows/unitTestsLinux.yml@main + windows-unit-tests: + needs: linux-unit-tests + uses: salesforcecli/github-workflows/.github/workflows/unitTestsWindows.yml@main