on: repository_dispatch: types: publish jobs: update_changelog_and_sync_package_lock_version: name: Update CHANGELOG.md and make sure package.json and package-lock.json versions matches. runs-on: ubuntu-latest steps: - name: Synchronize package.json and package-lock.json version if needed. uses: garronej/github_actions_toolkit@v1.9 env: GITHUB_TOKEN: ${{ secrets.PAT }} with: action_name: sync_package_and_package_lock_version owner: ${{github.repository_owner}} repo: ${{github.event.client_payload.repo}} branch: develop commit_author_email: ts_ci@github.com - name: Update CHANGELOG.md if: ${{ !!github.event.client_payload.from_version }} uses: garronej/github_actions_toolkit@v1.9 env: GITHUB_TOKEN: ${{ secrets.PAT }} with: action_name: update_changelog owner: ${{github.repository_owner}} repo: ${{github.event.client_payload.repo}} branch_behind: latest branch_ahead: develop commit_author_email: ts_ci@github.com exclude_commit_from_author_names_json: '["ts_ci"]' publish: runs-on: ubuntu-latest needs: update_changelog_and_sync_package_lock_version steps: - uses: actions/checkout@v2 with: fetch-depth: 0 ref: develop - name: Remove .github directory, useless on 'latest' branch run: rm -r .github - name: Remove branch 'latest' continue-on-error: true run: | git branch -d latest || true git push origin :latest - name: Create the new 'latest' branch run: | git branch latest git checkout latest - uses: actions/setup-node@v1 - run: npm ci - run: npm run enable_short_import_path env: DRY_RUN: "0" - name: (DEBUG) Show how the files have been moved to enable short import run: ls -lR - name: Publishing on NPM run: | if [ "$(npm show . version)" = "$VERSION" ]; then echo "This version is already published" exit 0 fi if [ "$NPM_TOKEN" = "" ]; then echo "Can't publish on NPM, You must first create a secret called NPM_TOKEN that contains your NPM auth token. https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets" false fi echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc npm publish rm .npmrc env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} VERSION: ${{ github.event.client_payload.to_version }} - name: Commit changes run: | git config --local user.email "ts_ci@github.com" git config --local user.name "ts_ci" git add -A git commit -am "Enabling shorter import paths [automatic]" - run: git push origin latest - name: Release body id: id_rb run: | if [ "$FROM_VERSION" = "" ]; then echo "::set-output name=body::🚀" else echo "::set-output name=body::📋 [CHANGELOG](https://github.com/$OWNER/$REPO/blob/$REF/CHANGELOG.md)" fi env: FROM_VERSION: ${{ github.event.client_payload.from_version }} OWNER: ${{github.repository_owner}} REPO: ${{github.event.client_payload.repo}} REF: v${{github.event.client_payload.to_version}} - name: Create Release uses: garronej/create-release@master env: GITHUB_TOKEN: ${{ secrets.PAT }} with: tag_name: v${{ github.event.client_payload.to_version }} release_name: Release v${{ github.event.client_payload.to_version }} branch: latest draft: false prerelease: false body: ${{ steps.id_rb.outputs.body }}