Skip to content

send docs PR link in Slack message #437

send docs PR link in Slack message

send docs PR link in Slack message #437

Workflow file for this run

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."