mirror of
https://github.com/scratchfoundation/scratch-audio.git
synced 2025-01-06 04:42:18 -05:00
a6d400dddb
This reverts commit ac0f98c431
.
91 lines
2.6 KiB
YAML
91 lines
2.6 KiB
YAML
version: 2.1
|
|
orbs:
|
|
node: circleci/node@5
|
|
|
|
aliases:
|
|
- &release-branches
|
|
- master
|
|
- develop
|
|
- /^hotfix\//
|
|
|
|
executors:
|
|
default-executor:
|
|
docker:
|
|
- image: cimg/node:16.18.1 # Consider switching to LTS when scratch-audio supports that version
|
|
working_directory: ~/project
|
|
resource_class: medium
|
|
|
|
commands:
|
|
test:
|
|
steps:
|
|
- run:
|
|
name: Test
|
|
command: npm run test
|
|
setup_deploy:
|
|
steps:
|
|
- run:
|
|
name: Setup Deploy
|
|
command: |
|
|
export NODE_ENV=production
|
|
export RELEASE_TIMESTAMP=$(date +'%Y%m%d%H%M%S')
|
|
echo "export NPM_TAG=latest" >> $BASH_ENV
|
|
npm run build
|
|
if [ -z "$BEFORE_DEPLOY_RAN" ]; then
|
|
VPKG=$($(npm bin)/json -f package.json version)
|
|
VERSION=${VPKG}-prerelease.${RELEASE_TIMESTAMP}
|
|
echo "export RELEASE_VERSION=${VPKG}-prerelease.${RELEASE_TIMESTAMP}" >> $BASH_ENV
|
|
npm --no-git-tag-version version $VERSION
|
|
if [[ "$CIRCLE_BRANCH" == hotfix/* ]]; then # double brackets are important for matching the wildcard
|
|
echo "export NPM_TAG=hotfix" >> $BASH_ENV
|
|
fi
|
|
git config --global user.email "$(git log --pretty=format:"%ae" -n1)"
|
|
git config --global user.name "$(git log --pretty=format:"%an" -n1)"
|
|
echo "export BEFORE_DEPLOY_RAN=true" >> $BASH_ENV
|
|
fi
|
|
deploy:
|
|
steps:
|
|
- run:
|
|
name: Deploy
|
|
command: |
|
|
echo "Deploying version $RELEASE_VERSION to $NPM_TAG"
|
|
npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN
|
|
npm publish --tag $NPM_TAG
|
|
if npm info | grep -q $RELEASE_VERSION; then git tag $RELEASE_VERSION && git push https://${GH_TOKEN}@github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}.git $RELEASE_VERSION; fi
|
|
|
|
jobs:
|
|
build-and-test:
|
|
executor: default-executor
|
|
steps:
|
|
- checkout
|
|
- node/install-packages
|
|
- test
|
|
- persist_to_workspace:
|
|
root: ~/project
|
|
paths:
|
|
- .
|
|
deploy:
|
|
executor: default-executor
|
|
steps:
|
|
- attach_workspace:
|
|
at: ~/project
|
|
- setup_deploy
|
|
- deploy
|
|
|
|
workflows:
|
|
build-and-test-workflow:
|
|
jobs:
|
|
- build-and-test:
|
|
filters:
|
|
branches:
|
|
ignore: *release-branches
|
|
deploy-workflow:
|
|
jobs:
|
|
- build-and-test:
|
|
filters:
|
|
branches:
|
|
only: *release-branches
|
|
- deploy:
|
|
context:
|
|
- scratch-npm-creds
|
|
requires:
|
|
- build-and-test
|