2021-02-10 18:37:46 +00:00
name : "Releases"
2021-02-01 14:10:21 +00:00
on :
2022-03-25 15:24:21 +00:00
workflow_dispatch :
2021-02-01 14:10:21 +00:00
push :
tags :
- 'v*'
2024-01-30 12:24:45 +00:00
env :
REGISTRY : ghcr.io
REGISTRY_USER : ${{ github.actor }}
REGISTRY_PASSWORD : ${{ github.token }}
IMAGE_NAME : ${{ github.repository }}
2021-02-01 14:10:21 +00:00
jobs :
main :
runs-on : ubuntu-latest
steps :
2022-10-06 12:58:01 +00:00
- uses : actions/checkout@v3
2021-02-01 14:10:21 +00:00
- name : Set node version
2022-10-06 12:58:01 +00:00
uses : actions/setup-node@v3
2021-02-01 14:10:21 +00:00
with :
2022-09-09 20:22:55 +00:00
node-version : '18.x'
2021-02-01 14:10:21 +00:00
- name : Install
run : |
2024-01-30 12:24:45 +00:00
npm ci
2021-02-12 13:51:51 +00:00
npm run setheapsize
2021-02-01 14:10:21 +00:00
- name : Lint
run : npx grunt lint
- name : Unit Tests
run : |
npm test
2022-03-28 14:42:11 +00:00
npm run testnodeconsumer
2021-02-01 14:10:21 +00:00
- name : Production Build
run : npx grunt prod
2023-03-09 14:01:21 +00:00
- name : UI Tests
run : |
sudo apt-get install xvfb
xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
2021-02-01 14:10:21 +00:00
2024-01-30 12:24:45 +00:00
- name : Image Metadata
id : image-metadata
uses : docker/metadata-action@v4
with :
images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags : |
type=semver,pattern={{major}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{version}}
- name : Production Image Build
id : build-image
uses : redhat-actions/buildah-build@v2
with :
tags : ${{ steps.image-metadata.outputs.tags }}
labels : ${{ steps.image-metadata.outputs.labels }}
2024-02-11 13:38:43 +00:00
containerfiles : ./Dockerfile
2024-02-08 19:32:56 +00:00
platforms : linux/amd64
2024-01-30 12:24:45 +00:00
oci : true
2024-02-06 10:26:33 +00:00
# Webpack seems to use a lot of open files, increase the max open file limit to accomodate.
extra-args : |
--ulimit nofile=10000
2024-01-30 12:24:45 +00:00
2021-02-01 14:10:21 +00:00
- name : Upload Release Assets
id : upload-release-assets
uses : svenstaro/upload-release-action@v2
with :
repo_token : ${{ secrets.GITHUB_TOKEN }}
file : build/prod/*.zip
tag : ${{ github.ref }}
overwrite : true
file_glob : true
2021-02-03 19:07:39 +00:00
body : "See the [CHANGELOG](https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md) and [commit messages](https://github.com/gchq/CyberChef/commits/master) for details."
2021-02-01 14:10:21 +00:00
- name : Publish to NPM
uses : JS-DevTools/npm-publish@v1
with :
token : ${{ secrets.NPM_TOKEN }}
2024-01-30 12:24:45 +00:00
- name : Publish to GHCR
uses : redhat-actions/push-to-registry@v2
with :
tags : ${{ steps.build-image.outputs.tags }}
registry : ${{ env.REGISTRY }}
username : ${{ env.REGISTRY_USER }}
password : ${{ env.REGISTRY_PASSWORD }}