Skip to content

Manual Release @scania/tegel-angular #7

Manual Release @scania/tegel-angular

Manual Release @scania/tegel-angular #7

name: Manual Release @scania/tegel-angular
on:
workflow_dispatch:
inputs:
nodeVersion:
description: 'Node version'
required: true
default: '20.9.0'
type: string
tags:
description: 'Tag'
required: true
default: 'beta'
type: choice
options:
- latest
- beta
- dev
dryRun:
description: 'Dry run'
required: false
default: true
type: boolean
jobs:
release-angular:
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: packages/angular
steps:
- name: Check out code
uses: actions/checkout@v4
with:
ref: main
- name: Set up node
# Setup .npmrc file to publish to npm
uses: actions/setup-node@v3
with:
node-version: ${{ github.event.inputs.nodeVersion }}
registry-url: 'https://registry.npmjs.org'
- name: Set Tegel user
run: git config --global user.name "Tegel - Scania" && git config --global user.email "[email protected]"r
- name: Angular - Read package.json Version
id: version
working-directory: packages/angular
run: echo "PACKAGE_VERSION=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
- name: Install dependencies in root
run: npm install
- name: Core - Install
working-directory: packages/core
run: npm install
- name: Angular - Install
working-directory: packages/angular
run: npm install
- name: Angular - Install latest tegel package
working-directory: packages/angular
run: npm install @scania/tegel@${{ steps.version.outputs.PACKAGE_VERSION }}
- name: Angular - Run build
run: npm run build-angular
- name: Angular - Publish
working-directory: packages/angular
run: |
if [ "${{ github.event.inputs.dryRun }}" == "true" ]; then
npm publish --tag ${{ github.event.inputs.tags }} --dry-run
else
npm publish --tag ${{ github.event.inputs.tags }}
fi
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
outputs:
version: ${{ steps.version.outputs.PACKAGE_VERSION }}
on-failure:
needs: release-angular
runs-on: ubuntu-latest
if: always() && needs.release-angular.result == 'failure'
steps:
- name: Check out code
uses: actions/checkout@v4
with:
ref: main
- name: Remove git tag on failure
run: |
tagname="@scania/tegel@${{ needs.release-angular.outputs.version }}"
if git rev-parse $tagname >/dev/null 2>&1; then
git push origin --delete $tagname
fi