Skip to content

Manual deployments for all envs #47

Manual deployments for all envs

Manual deployments for all envs #47

name: Manual deployments for all envs
on:
workflow_dispatch:
inputs:
spaName:
description: Please enter the SPA name to deploy (eg. component-catalog).
required: true
type: string
env:
description: Select then env you want to deploy your SPA.
options:
- dev
- qa
- stage
- prod
default: dev
required: true
type: choice
env:
NODE_VERSION: 16
SPA_NAME: "${{ inputs.spaName }}-spa"
jobs:
build-and-deployment:
name: "Deploy ${{ inputs.spaName }}"
runs-on: self-hosted
timeout-minutes: 20
steps:
- uses: actions/checkout@v3
name: Use Node.js 16.x
- uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: Get env secrets for {{ inputs.env }}
run: |
cd packages/$SPA_NAME
curl -k --header "PRIVATE-TOKEN:${{ secrets.GITLAB_TOKEN }}" "${{ secrets.GITLAB_URL }}spa-configs%2F${{ inputs.env }}%2F$SPA_NAME%2F.env/raw?ref=master" -o .env
- name: Install node modules
run: |
cd packages/$SPA_NAME
npm install
- name: Build SPA with env
run: |
cd packages/$SPA_NAME
npm run build
- name: Deploy SPA for ${{ inputs.env }}
env:
CI: false
run: |
cd packages/$SPA_NAME
npx @spaship/cli@latest deploy --apikey=${{ secrets.SPASHIP_API_KEY }} --env=${{ secrets.SPASHIP_DEPLOY_URL }}${{ inputs.env }} --ref=$(node -p "require('./package.json').version")
- name: Get SPA NAME as strings
id: get-lighthouse-branch-name
uses: actions/github-script@v6
with:
script: core.setOutput('LIGHTHOUSE_BRANCH_NAME', "$SPA_NAME".toUpperCase())
- name: Lighthouse CI
if: ${{inputs.env}} == 'prod'
env:
NODE_TLS_REJECT_UNAUTHORIZED: 0
SSO_PASSWORD: ${{ secrets.SSO_PASSWORD }}
SSO_USERNAME: ${{ secrets.SSO_USERNAME }}
LH_HOST: ${{ secrets.LH_HOST }}
LHCI_BUILD_CONTEXT__CURRENT_BRANCH: ${{ steps.get-lighthouse-branch-name.outputs.LIGHTHOUSE_BRANCH_NAME }}
run: |
cd packages/$SPA_NAME
npm i puppeteer
npx @lhci/cli@0.10.0 autorun \
--upload.serverBaseUrl=${{ secrets.SERVER_BASE_URL }} \
--upload.token=${{ secrets.LIGHTHOUSE_TOKEN }} \
--headful=false
|| echo 'Lighthouse assert failed'