Skip to content

PO-UI Publish Latest #1

PO-UI Publish Latest

PO-UI Publish Latest #1

name: PO-UI Publish Latest
# URL para os pacotes po-ui no npm
env:
SCHEMATICS_NPM_PATH: po-ui/ng-schematics
STORAGE_NPM_PATH: po-ui/ng-storage
SYNC_NPM_PATH: po-ui/ng-sync
COMPONENTS_NPM_PATH: po-ui/ng-components
TEMPLATES_NPM_PATH: po-ui/ng-templates
CODE_EDITOR_NPM_PATH: po-ui/ng-code-editor
AZURE_WEBAPP_NAME: wa-po-ui
AZURE_WEBAPP_PACKAGE_PATH: /home/runner/work/po-angular/po-angular/po-angular/dist/portal
WORKING_DIR: /home/runner/work/po-angular/po-angular/po-angular
on:
workflow_dispatch:
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- name: Check out po-angular
uses: actions/checkout@v4
with:
path: po-angular
- name: Check out style
uses: actions/checkout@v4
with:
repository: po-ui/po-style
path: po-style
- name: Check out lint
uses: actions/checkout@v4
with:
repository: po-ui/po-tslint
path: po-tslint
- name: Install and Build
run: npm install && npm run build
working-directory: ${{env.WORKING_DIR}}
# Pega a última versão dos pacotes publicados no npm e armazena em variáveis
- run: echo "SCHEMATICS_LAST_PUBLISHED_VERSION=$(npm view @${{ env.SCHEMATICS_NPM_PATH }} dist-tags.latest)" >> $GITHUB_ENV
- run: echo "STORAGE_LAST_PUBLISHED_VERSION=$(npm view @${{ env.STORAGE_NPM_PATH }} dist-tags.latest)" >> $GITHUB_ENV
- run: echo "SYNC_LAST_PUBLISHED_VERSION=$(npm view @${{ env.SYNC_NPM_PATH }} dist-tags.latest)" >> $GITHUB_ENV
- run: echo "COMPONENTS_LAST_PUBLISHED_VERSION=$(npm view @${{ env.COMPONENTS_NPM_PATH }} dist-tags.latest)" >> $GITHUB_ENV
- run: echo "TEMPLATES_LAST_PUBLISHED_VERSION=$(npm view @${{ env.TEMPLATES_NPM_PATH }} dist-tags.latest)" >> $GITHUB_ENV
- run: echo "CODE_EDITOR_LAST_PUBLISHED_VERSION=$(npm view @${{ env.CODE_EDITOR_NPM_PATH }} dist-tags.latest)" >> $GITHUB_ENV
# Pega a versão no package.json
- name: Get package.json version.
id: package-version
uses: martinbeentjes/npm-get-version-action@main
with:
path: po-angular
# PUBLISH NG-SCHEMATICS
- name: ng-schematics - publish
# Se a versão remota for igual à versão que será publicada então ele pula o publish deste pacote e tenta publicar os demais pacotes
if: (!contains(env.PACKAGE_VERSION, env.SCHEMATICS_LAST_PUBLISHED_VERSION))
uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm publish ${{env.WORKING_DIR}}/dist/ng-schematics --tag latest --ignore-scripts
env:
PACKAGE_VERSION: ${{ steps.package-version.outputs.current-version }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# PUBLISH NG-STORAGE
- name: ng-storage - publish
if: (!contains(env.PACKAGE_VERSION, env.STORAGE_LAST_PUBLISHED_VERSION))
uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm publish ${{env.WORKING_DIR}}/dist/ng-storage --tag latest --ignore-scripts
env:
PACKAGE_VERSION: ${{ steps.package-version.outputs.current-version }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# PUBLISH NG-SYNC
- name: ng-sync - publish
if: (!contains(env.PACKAGE_VERSION, env.SYNC_LAST_PUBLISHED_VERSION))
uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm publish ${{env.WORKING_DIR}}/dist/ng-sync --tag latest --ignore-scripts
env:
PACKAGE_VERSION: ${{ steps.package-version.outputs.current-version }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# PUBLISH NG-COMPONENTS
- name: ng-components - publish
if: (!contains(env.PACKAGE_VERSION, env.COMPONENTS_LAST_PUBLISHED_VERSION))
uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm publish ${{env.WORKING_DIR}}/dist/ng-components --tag latest --ignore-scripts
env:
PACKAGE_VERSION: ${{ steps.package-version.outputs.current-version }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# PUBLISH NG-TEMPLATES
- name: ng-templates - publish
if: (!contains(env.PACKAGE_VERSION, env.TEMPLATES_LAST_PUBLISHED_VERSION))
uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm publish ${{env.WORKING_DIR}}/dist/ng-templates --tag latest --ignore-scripts
env:
PACKAGE_VERSION: ${{ steps.package-version.outputs.current-version }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# PUBLISH NG-CODE-EDITOR
- name: ng-code-editor - publish
if: (!contains(env.PACKAGE_VERSION, env.CODE_EDITOR_LAST_PUBLISHED_VERSION))
uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm publish ${{env.WORKING_DIR}}/dist/ng-code-editor --tag latest --ignore-scripts
env:
PACKAGE_VERSION: ${{ steps.package-version.outputs.current-version }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# PUBLISH PORTAL
- name: portal build
run: npm run build:portal:docs && npm run build:portal:prod
working-directory: ${{env.WORKING_DIR}}
- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v2
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
publish-profile: ${{ secrets.AZURE_TOKEN }}