send docs PR link in Slack message #437
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: Publish to NPM | |
on: | |
push: | |
# workflow_dispatch: | |
# inputs: | |
# release_type: | |
# type: choice | |
# description: Release Type | |
# options: | |
# - alpha | |
# - release | |
# required: true | |
# default: alpha | |
# upgrade_type: | |
# type: choice | |
# description: Upgrade Type | |
# options: | |
# - none | |
# - patch | |
# - minor | |
# # - major | |
# required: false | |
# default: none | |
# dry_run: | |
# type: boolean | |
# description: "(Optional) Dry run" | |
# required: false | |
# default: false | |
jobs: | |
Publish: | |
name: Publish Workflow | |
runs-on: ubuntu-latest-4-cores | |
env: | |
GH_TOKEN: ${{ secrets.PLATFORM_SA_GITHUB_TOKEN }} | |
NODE_OPTIONS: --max-old-space-size=14366 | |
SDK_PUBLISH_SLACK_WEBHOOK: ${{ secrets.SDK_PUBLISH_SLACK_WEBHOOK }} | |
steps: | |
- name: Check Public Release Branch | |
if: contains(github.event.inputs.release_type, 'release') && (github.ref != 'refs/heads/main') | |
run: failure("Public releases should be only done from main branch, current branch ${{ github.ref }}") | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Setup Github | |
run: | | |
git config user.name "${GITHUB_ACTOR}" | |
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" | |
- name: Get tags | |
run: git fetch --tags | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: lts/* | |
cache: 'yarn' | |
- name: Workout next version string | |
run: | | |
upgrade_type=${{ github.event.inputs.upgrade_type }} | |
if [ ${{ contains(github.event.inputs.upgrade_type, 'none') }} == true ] | |
then | |
upgrade_type="" | |
revision_upgrade=$( ${{ contains(github.event.inputs.release_type, 'alpha') }} && echo '--revision' || echo '') | |
echo $revision | |
fi | |
./.github/scripts/version-up.sh --${{ github.event.inputs.release_type }} --$upgrade_type --apply $revision_upgrade | |
shell: bash | |
- name: Install dependencies | |
run: yarn install --immutable | |
# - name: Lint | |
# run: yarn lint | |
# - name: Check Single Package Version Policy | |
# run: yarn syncpack:check | |
- name: Get next version string | |
id: version | |
run: | | |
echo "NEXT_VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT | |
# - name: Update package.json version for build | |
# run: | | |
# tmp=$(mktemp) | |
# jq '.version = "${{steps.version.outputs.NEXT_VERSION}}"' ./sdk/package.json > "$tmp" && mv "$tmp" ./sdk/package.json | |
# - name: Build | |
# run: export NODE_OPTIONS=--max-old-space-size=6144 && RELEASE_TYPE=${{ github.event.inputs.release_type }} yarn build | |
# - name: Typecheck | |
# run: yarn typecheck | |
# - name: Test | |
# run: yarn test | |
# - name: Push tags | |
# # Boolean inputs are not actually booleans, see https://github.com/actions/runner/issues/1483 | |
# if: github.event.inputs.dry_run == 'false' | |
# run: | | |
# echo "$(git push --tags)" | |
# - name: Pre Release Step | |
# if: contains(github.event.inputs.release_type, 'alpha') | |
# uses: JS-DevTools/npm-publish@v1 | |
# with: | |
# token: ${{ secrets.PLATFORM_SA_NPM_TOKEN }} | |
# access: public | |
# package: ./sdk/package.json | |
# tag: ${{ contains(github.event.inputs.release_type, 'alpha') && 'alpha' }} | |
# dry-run: ${{ github.event.inputs.dry_run }} | |
# - name: Authenticate NPM | |
# if: contains(github.event.inputs.release_type, 'release') | |
# run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.PLATFORM_SA_NPM_TOKEN }} | |
# - name: Release | |
# id: npm_release | |
# if: contains(github.event.inputs.release_type, 'release') | |
# run: yarn release --ci --no-increment -c .release-it.json $( ${{ github.event.inputs.dry_run }} && echo "--dry-run" || echo "") --github.tokenRef=${{ secrets.RELEASE_TOKEN }} | |
# - name: Create GitHub Release | |
# if: contains(github.event.inputs.release_type, 'release') && github.event.inputs.dry_run == 'false' | |
# run: gh release create ${{ steps.version.outputs.NEXT_VERSION }} --title ${{ steps.version.outputs.NEXT_VERSION }} --draft=false --prerelease=false --generate-notes --repo immutable/ts-immutable-sdk | |
# - name: Get GitHub Release Name and URL | |
# if: contains(github.event.inputs.release_type, 'release') && github.event.inputs.dry_run == 'false' | |
# id: release | |
# run: | | |
# echo "RELEASE_NAME=$(gh release view --json name | jq -r .name)" >> $GITHUB_OUTPUT | |
# echo "RELEASE_URL=$(gh release view --json url | jq -r .url)" >> $GITHUB_OUTPUT | |
- name: Notify SDK Slack Publish Success | |
# if: ${{ success() && steps.npm_release.conclusion == 'success' && github.event.inputs.dry_run == 'false' }} | |
uses: ./.github/actions/notify-slack-publish-status | |
with: | |
message: "✅ Successfully published SDK version ${{steps.version.outputs.NEXT_VERSION}} to NPM.\n\nhttps://www.npmjs.com/package/@imtbl/sdk/v/${{steps.version.outputs.NEXT_VERSION}}" | |
# - name: Notify SDK Slack Publish Failure | |
# if: ${{ failure() && steps.npm_release.conclusion == 'failure' && github.event.inputs.dry_run == 'false' }} | |
# uses: ./.github/actions/notify-slack-publish-status | |
# with: | |
# message: "❌ Failed to publish SDK version ${{steps.version.outputs.NEXT_VERSION}} to NPM. Please check the logs for more details." |