Skip to content

Commit

Permalink
Add github actions workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
duttonw committed Mar 27, 2024
1 parent ee1fc58 commit 53eb843
Show file tree
Hide file tree
Showing 11 changed files with 279 additions and 22 deletions.
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
143 changes: 143 additions & 0 deletions .github/workflows/compile.js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# 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/[email protected]

- 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/'

- 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
#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: 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/'
- 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 ./storybook-static ./target/docs
cp -r ./dist/* ./target/.
- 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()

55 changes: 55 additions & 0 deletions .github/workflows/storybook-deploy.js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Storybook deploy

on:
workflow_run:
workflows: [Build and Test] # Reuse the name of your tests workflow
branches: [main, develop]
types: [completed ]

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

jobs:
deploy:

runs-on: ubuntu-latest
strategy:
matrix:
node: [ '16' ]
name: Deploy with Node ${{ matrix.node }}
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- uses: actions/[email protected]

- 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/'
- 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.
- name: rebuild and prepare
run: npm rebuild && npm run prepare --if-present

- name: Build 🔧
run: | # build the Storybook files
npm run build
- name: Build Storybook 🔧
run: | # build the Storybook files
npm run build-storybook
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages # The branch the action should deploy to.
FOLDER: storybook-static # The folder that the build-storybook script generates files.
CLEAN: true # Automatically remove deleted files from the deploy branch
TARGET_FOLDER: docs # The folder that we serve our Storybook files from
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
25 changes: 13 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"watch": "node build.js --watch",
"serve": "live-server dist",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
"build-storybook": "storybook build",
"lint": "eslint --fix --ext .js,.md,.mdx,.json ."
},
"keywords": [],
"author": "",
Expand Down
10 changes: 5 additions & 5 deletions src/components/bs5/banner/banner.stories.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ export default {
export const Default = {
args: {
...defaultdata,
breadcrumbs: ""
}
breadcrumbs: "",
},
};

// Default Breadcrumbs story
const breadcrumbs = new Breadcrumbs(breadcrumbdata);
export const WithBreadcrumbs = {
args: {
...defaultdata,
breadcrumbs: breadcrumbs.html
}
}
breadcrumbs: breadcrumbs.html,
},
}
2 changes: 1 addition & 1 deletion src/components/bs5/blockquote/Blockquote.stories.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ export default {

// Default blockquote story
export const Default = {
args: defaultdata
args: defaultdata,
};
2 changes: 1 addition & 1 deletion src/components/bs5/globalAlert/GlobalAlert.stories.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default {
"global-alert-warning": "Warning",
"global-alert-info": "General information",
"global-alert-multiple": "Multiple",
}
},
},
options: ["global-alert-critical", "global-alert-warning", "global-alert-info", "global-alert-multiple"],
},
Expand Down
2 changes: 1 addition & 1 deletion src/components/bs5/sidenav/data.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{}
{}
2 changes: 1 addition & 1 deletion src/components/bs5/tag/Tag.stories.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default {
"tag-alt": "Alt",
"tag-dark": "Dark",
"tag-dark-alt": "Dark-alt",
}
},
},
options: ["tag-default", "tag-alt", "tag-dark", "tag-dark-alt"],
},
Expand Down

0 comments on commit 53eb843

Please sign in to comment.