Skip to content

Commit

Permalink
Merge CICD enabling, remove @storybook/addon-designs for now since th…
Browse files Browse the repository at this point in the history
…ere is npm conflicts with it atm
  • Loading branch information
duttonw committed Mar 29, 2024
2 parents 0c071f3 + 58be9fb commit f9ee323
Show file tree
Hide file tree
Showing 181 changed files with 10,786 additions and 33,510 deletions.
4 changes: 2 additions & 2 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module.exports = {
"browser": true,
"es2021": true,
},
"extends": ["eslint:recommended", "plugin:storybook/recommended"],
"extends": ["eslint:recommended", "plugin:json/recommended", "plugin:storybook/recommended"],
"overrides": [
{
"env": {
Expand All @@ -15,7 +15,7 @@ module.exports = {
"parserOptions": {
"sourceType": "script",
},
},
}
],
"parserOptions": {
"ecmaVersion": "latest",
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

TARGET_REPO secret must be set

e.g.

qld-gov-au/formio-qld

GH_TOKEN secret must be set

At this time this for repo qld-gov-au/formio it is set to a GHA token for @duttonw

structure of the GH_TOKEN is

${username}:${token}

e.g. username:mypersonalaccesstoken

if this fails, generate a new token via
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
and update the secret
191 changes: 191 additions & 0 deletions .github/workflows/compile.js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Build and Test

on:
push:
pull_request:

concurrency:
group: compile-${{ github.workflow }}-${{ github.ref }} # Recommended if you intend to make multiple deployments in quick succession.
cancel-in-progress: true

jobs:
validate:

runs-on: ubuntu-latest
strategy:
matrix:
node: [ '20']
name: Lint test on Node ${{ matrix.node }}
steps:
- run: echo ${{github.ref}}

- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'npm'
#always-auth: 'true'
#registry-url: 'https://nexus.tools.services.qld.gov.au/nexus/repository/npm_all/'

- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
name: List the state of node modules
continue-on-error: true
run: npm list

- name: npmrc #run on lint step (Which is cached)
run: |
npm -v
node -v
# cat /home/runner/work/_temp/.npmrc #only nice to test when registry is altered
#env:
# NODE_AUTH_TOKEN: ${{ secrets.NEXUSREADONLY2NPMTOKEN }}

- name: Install
run: | # Install packages
npm install --prefer-offline --no-audit --ignore-scripts --force
#env:
# NODE_AUTH_TOKEN: ${{ secrets.NEXUSREADONLY2NPMTOKEN }}

# `npm rebuild` will run all those post-install scripts for us.
- name: rebuild and prepare
run: npm rebuild && npm run prepare --if-present

- name: Lint
run: |
npm run lint
- name: Test
run: |
npm run test
build:
needs: validate
runs-on: ubuntu-latest
strategy:
matrix:
node: [ '20' ]
name: Build and Deploy on Node ${{ matrix.node }}
steps:
- uses: actions/[email protected]

- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
name: List the state of node modules
continue-on-error: true
run: npm list

- name: Use Node.js
uses: actions/[email protected]
with:
node-version: ${{ matrix.node }}
cache: 'npm'
#always-auth: 'true'
#registry-url: 'https://nexus.tools.services.qld.gov.au/nexus/repository/npm_all/'
registry-url: 'https://registry.npmjs.org'
- name: Install #run on lint step (Which is cached)
run: | # Install packages
npm install --prefer-offline --no-audit --ignore-scripts
#env:
# NODE_AUTH_TOKEN: ${{ secrets.NEXUSREADONLY2NPMTOKEN }}

# `npm rebuild` will run all those post-install scripts for us.
- name: rebuild and prepare
run: npm rebuild && npm run prepare --if-present

- name: Build 🔧
run: | # build the files
npm run build
# - name: Build storybook 🔧
# run: | # build the Storybook files
# npm run build-storybook

- name: setup Package
run: |
ls -ltr
mkdir -p ./target/docs
cp -r ./docs ./target/docs
cp -r ./dist ./target/dist
- uses: actions/[email protected]
with:
name: Package
path: ./target


- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch

- name: display branch name
shell: bash
run: echo "${{ steps.extract_branch.outputs.branch }}"


- name: setup Publish
run: |
set -x
cp -r ./binary-repo/* ./dist
- name: Publish qgds-qol-dist
uses: qld-gov-au/gha-publish-to-git@master
with:
repository: ${{ secrets.TARGET_REPO }}
git_ref: '${{ github.ref }}'
branch: '${{ steps.extract_branch.outputs.branch }}'
github_token: '${{ secrets.GH_TOKEN }}'
github_pat: '${{ secrets.GH_PAT }}'
source_folder: dist
tag_branch: main
if: success()

- name: Publish to qgds-qol-cdn
uses: qld-gov-au/gha-cdn-version-tree-by-tag-builder@main
with:
repository: 'qld-gov-au/formio-qld-cdn'
git_ref: '${{ github.ref }}'
branch: 'release'
github_token: '${{ secrets.GH_TOKEN }}'
github_pat: '${{ secrets.GH_PAT }}'
source_folder: dist
if: success()

- name: Build Storybook 🔧
run: | # build the Storybook files
npm run build-storybook
- name: Package storybook files
uses: actions/upload-artifact@v4 #provide nice artifact
with:
name: Storybook
path: storybook-static
92 changes: 92 additions & 0 deletions .github/workflows/storybook-deploy.js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Storybook deploy

on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
workflow_run:
workflows: [Build and Test] # Reuse the name of your tests workflow
branches: [main, develop]
types: [completed ]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
actions: read
id-token: write

concurrency:
group: deploy-${{ github.workflow }}-${{ github.ref }} # Recommended if you intend to make multiple deployments in quick succession.
cancel-in-progress: false

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
strategy:
matrix:
node: [ '20' ]
name: Deploy with Node ${{ matrix.node }}
if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }}
steps:
- uses: actions/checkout@v4

- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
name: List the state of node modules
continue-on-error: true
run: npm list

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'npm'
#always-auth: 'true'
#registry-url: 'https://nexus.tools.services.qld.gov.au/nexus/repository/npm_all/'
registry-url: 'https://registry.npmjs.org'
- name: Install
run: | # Install packages
npm install --prefer-offline --no-audit --ignore-scripts
#env:
# NODE_AUTH_TOKEN: ${{ secrets.NEXUSREADONLY2NPMTOKEN }}

# `npm rebuild` will run all those post-install scripts for us. Without our secret key in ENV
- name: rebuild and prepare
run: npm rebuild && npm run prepare --if-present

- name: Build 🔧
run: | # build the files
npm run build
- name: Build Storybook 🔧
run: | # build the Storybook files
npm run build-storybook
- uses: actions/upload-artifact@v4 #provide nice artifact
with:
name: Storybook
path: storybook-static

- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "./storybook-static"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/[email protected]
37 changes: 37 additions & 0 deletions .github/workflows/updateChangeLog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Update Changelog
on:
release:
types: [published]
workflow_dispatch:
inputs:
description:
description: 'Manual change log update'
jobs:
updateChangelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Update Changelog
# https://github.com/git-chglog/git-chglog#getting-started
run: |
mkdir tmp
pushd tmp
curl -o git-chglog.tar.gz -L https://github.com/git-chglog/git-chglog/releases/download/v0.15.1/git-chglog_0.15.1_linux_amd64.tar.gz
#curl -o git-chglog.tar.gz -L https://github.com/git-chglog/git-chglog/releases/download/v0.15.1/git-chglog_0.15.1_darwin_amd64.tar.gz
tar -zxvf git-chglog.tar.gz
cp ./git-chglog ../git-chglog
popd
rm -rf tmp
chmod u+x git-chglog
./git-chglog -o CHANGELOG.md
rm git-chglog
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: update changelog
title: Update Changelog
body: Update changelog to reflect release changes
branch: update-changelog
base: main
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
node
node_modules
.env
.DS_Store
.vscode
storybook-static
storybook-static
.DS_Store
.vscode
storybook-static/
docs/
dist/
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
registry=https://registry.npmjs.org
Loading

0 comments on commit f9ee323

Please sign in to comment.