Skip to content

Merge pull request #30 from tfso/chore/centralize-auth-routines #10

Merge pull request #30 from tfso/chore/centralize-auth-routines

Merge pull request #30 from tfso/chore/centralize-auth-routines #10

Workflow file for this run

name: (Release) Package
on:
push:
tags:
- 'v[0-9]+\.[0-9]+\.[0-9]+' # only full releases, eg v1.0.1
env:
NODE_VERSION: 20
FILES: |
dist/
src/
package.json
package-lock.json
README.md
jobs:
setup:
environment: prod
runs-on: ubuntu-latest
name: find version
outputs:
version: v${{ steps.semver.outputs.fullversion }}
prerelease: ${{ steps.semver.outputs.prerelease }}
steps:
- name: extract tag version
id: semver
uses: booxmedialtd/ws-action-parse-semver@v1
with:
input_string: ${{ github.ref }}
version_extractor_regex: 'refs\/tags\/v(.*)$'
build:
runs-on: ubuntu-latest
name: download package
needs: setup
steps:
- name: build npm package
uses: tfso/action-helpers/npm-build@v1
id: npm
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TFSO_TOKEN }}
FONT_AWESOME_TOKEN: ${{ secrets.FONT_AWESOME_TOKEN }}
NODE_VERSION: ${{ env.NODE_VERSION }}
CUSTOM_TAG: ${{ needs.setup.outputs.version }}
- name: upload package
uses: actions/upload-artifact@v3
with:
name: package
path: ${{ env.FILES }}
retention-days: 7
publish-npm:
name: publish to npm
needs: [setup, build]
runs-on: ubuntu-latest
steps:
- name: download artifact
uses: actions/download-artifact@v3
with:
name: package
- name: setup
uses: actions/setup-node@v3
with:
node-version: 16
registry-url: https://registry.npmjs.org/
scope: "@tfso"
- name: extract package version
id: semver_package
uses: Saionaro/[email protected]
- name: compare package version with tag version
if: format('v{0}', steps.semver_package.outputs.version) != needs.setup.outputs.version
run: |
echo "version from package v${{ steps.semver_package.outputs.version }} is not matching tag version ${{ needs.setup.outputs.version }}"
exit 1
- name: publish
run: |
npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
publish:
runs-on: ubuntu-latest
name: publish
needs: [setup, build]
steps:
- name: download package
uses: actions/download-artifact@v3
with:
name: package
- name: setup
uses: actions/setup-node@v3
with:
node-version: 16
registry-url: 'https://npm.pkg.github.com'
scope: '@tfso'
- name: extract package version
id: semver_package
uses: Saionaro/[email protected]
- name: compare package version with tag version
if: format('v{0}', steps.semver_package.outputs.version) != needs.setup.outputs.version
run: |
echo "version from package v${{ steps.semver_package.outputs.version }} is not matching tag version ${{ needs.setup.outputs.version }}"
exit 1
- name: publish version
run: |
npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release:
runs-on: ubuntu-latest
needs: publish
steps:
- uses: tfso/action-changelog-release@v1
name: create github release
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}