mirror of
https://github.com/scratchfoundation/scratch-audio.git
synced 2025-01-18 05:30:06 -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
|
# Testing
|
||||||
/.nyc_output
|
/.nyc_output
|
||||||
/coverage
|
/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
|
#### 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
|
## Installation
|
||||||
This requires you to have Git and Node.js installed.
|
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",
|
"babel-preset-env": "1.7.0",
|
||||||
"eslint": "3.19.0",
|
"eslint": "3.19.0",
|
||||||
"eslint-config-scratch": "3.1.0",
|
"eslint-config-scratch": "3.1.0",
|
||||||
|
"json": "9.0.6",
|
||||||
"tap": "12.7.0",
|
"tap": "12.7.0",
|
||||||
"web-audio-test-api": "0.5.2",
|
"web-audio-test-api": "0.5.2",
|
||||||
"webpack": "4.46.0",
|
"webpack": "4.46.0",
|
||||||
|
|
Loading…
Reference in a new issue