107 lines
3.7 KiB
YAML
107 lines
3.7 KiB
YAML
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 }}
|