mirror of
https://github.com/scratchfoundation/scratch-audio.git
synced 2025-01-03 11:35:49 -05:00
Merge pull request #181 from LLK/circleci
ci: Replace Travis with CircleCI
This commit is contained in:
commit
50b7ade0d9
6 changed files with 14897 additions and 35 deletions
91
.circleci/config.yml
Normal file
91
.circleci/config.yml
Normal file
|
@ -0,0 +1,91 @@
|
|||
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
|
|
@ -1,3 +1,6 @@
|
|||
# Development files
|
||||
/.circleci
|
||||
|
||||
# Testing
|
||||
/.nyc_output
|
||||
/coverage
|
||||
|
|
34
.travis.yml
34
.travis.yml
|
@ -1,34 +0,0 @@
|
|||
language: node_js
|
||||
node_js:
|
||||
- 8
|
||||
- node
|
||||
env:
|
||||
matrix:
|
||||
- NPM_SCRIPT="tap -- --jobs=4"
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
script: npm run $NPM_SCRIPT
|
||||
jobs:
|
||||
include:
|
||||
- env: NPM_SCRIPT=build
|
||||
node_js: 8
|
||||
if: not (branch in (master, develop) and type != pull_request)
|
||||
- env: NPM_SCRIPT=lint
|
||||
node_js: 8
|
||||
- stage: release
|
||||
node_js: 8
|
||||
env: NPM_SCRIPT=build
|
||||
before_deploy:
|
||||
- npm --no-git-tag-version version 0.1.0-prerelease.$(date +%Y%m%d%H%M%S)
|
||||
deploy:
|
||||
- provider: npm
|
||||
on:
|
||||
all_branches: true
|
||||
skip_cleanup: true
|
||||
email: $NPM_EMAIL
|
||||
api_key: $NPM_TOKEN
|
||||
stages:
|
||||
- test
|
||||
- name: release
|
||||
if: branch in (master, develop) and type != pull_request
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#### Please note this project is at an early stage and we are not ready for pull requests
|
||||
|
||||
[![Build Status](https://travis-ci.org/LLK/scratch-audio.svg?branch=develop)](https://travis-ci.org/LLK/scratch-audio)
|
||||
[![CircleCI](https://circleci.com/gh/LLK/scratch-audio/tree/develop.svg?style=shield&circle-token=3792f4f51158c8c9b448527466ffe302b0c6f0f5)](https://circleci.com/gh/LLK/scratch-audio?branch=develop)
|
||||
|
||||
## Installation
|
||||
This requires you to have Git and Node.js installed.
|
||||
|
|
14801
package-lock.json
generated
Normal file
14801
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -33,6 +33,7 @@
|
|||
"babel-preset-env": "1.7.0",
|
||||
"eslint": "3.19.0",
|
||||
"eslint-config-scratch": "3.1.0",
|
||||
"json": "9.0.6",
|
||||
"tap": "12.7.0",
|
||||
"web-audio-test-api": "0.5.2",
|
||||
"webpack": "4.46.0",
|
||||
|
|
Loading…
Reference in a new issue