mirror of
https://github.com/scratchfoundation/scratch-paint.git
synced 2024-12-23 05:52:42 -05:00
72 lines
1.9 KiB
YAML
72 lines
1.9 KiB
YAML
version: 2.1
|
|
aliases:
|
|
- &defaults
|
|
docker:
|
|
- image: cimg/node:12.22.11-browsers
|
|
auth:
|
|
username: $DOCKERHUB_USERNAME
|
|
password: $DOCKERHUB_PASSWORD
|
|
working_directory: ~/repo
|
|
environment:
|
|
NODE_ENV: production
|
|
- &setup
|
|
name: "setup"
|
|
command: |
|
|
npm --production=false ci
|
|
mkdir ./test/results
|
|
- &lint
|
|
name: "run lint tests"
|
|
command: npm run lint -- --format junit -o ./test/results/lint-results.xml
|
|
- &unit
|
|
name: "run unit tests"
|
|
command: JEST_JUNIT_OUTPUT_NAME=unit-jest-results.xml npm run unit -- --reporters=jest-junit
|
|
- &build
|
|
name: "run npm build"
|
|
command: |
|
|
NODE_ENV=production npm run build
|
|
- &tag-setup
|
|
name: "setup tags"
|
|
command: |
|
|
RELEASE_TIMESTAMP="$(date +'%Y%m%d%H%M%S')"
|
|
VPKG=$($(npm bin)/json -f package.json version)
|
|
export RELEASE_VERSION=${VPKG}-prerelease.${RELEASE_TIMESTAMP}
|
|
echo $RELEASE_VERSION
|
|
export NPM_TAG=latest
|
|
if [[ "$CIRCLE_BRANCH" == hotfix/* ]]; then # double brackets are important for matching the wildcard
|
|
export NPM_TAG=hotfix
|
|
fi
|
|
- &deploy-gh-pages
|
|
name: "deploy to gh pages"
|
|
command: |
|
|
git config --global user.email $(git log --pretty=format:"%ae" -n1)
|
|
git config --global user.name $(git log --pretty=format:"%an" -n1)
|
|
npm run deploy -- -e $CIRCLE_BRANCH
|
|
|
|
jobs:
|
|
build-test:
|
|
<<: *defaults
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
<<: *setup
|
|
- run:
|
|
<<: *lint
|
|
- run:
|
|
<<: *unit
|
|
- run:
|
|
<<: *build
|
|
- store_test_results:
|
|
path: test/results
|
|
|
|
workflows:
|
|
build-test-no-deploy:
|
|
jobs:
|
|
- build-test:
|
|
context:
|
|
- dockerhub-credentials
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- master
|
|
- develop
|
|
- /^hotfix\/.*/
|