mirror of https://github.com/status-im/metro.git
Setup Continuous Delivery
Summary: <!-- Thanks for submitting a pull request! Please provide enough information so that others can review your pull request. The two fields below are mandatory. --> **Summary** As we discussed on Discord channel on Nov 6th, this PR adds appropriate hooks to CircleCI in order to deploy successful builds (on master branch) to `npm` using tag that has been assigned to the latest commit. This is how deployment process should look like: Once you want to deploy, push a new tag to master. That will trigger a deployment script on CI. [According to CircleCI documentation](https://circleci.com/docs/1.0/npm-continuous-deployment/), the best way is to use ``` npm version x.y.z ``` in order to update package version and create git tag. Then, you can push your code using ``` git push --follow-tags ``` After successful build, a new version will be released. <!-- Explain the **motivation** for making this change. What existing problem does the pull request solve? --> **Test plan** Not sure if there is a way to properly test it before the merge. I think the only way is to merge it in, setup NPM_TOKEN env variable and try to create a new version by running build on CI. Please, let me know if you see alternative scenarios. <!-- Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI. --> Closes https://github.com/facebook/metro-bundler/pull/88 Reviewed By: BYK, cpojer Differential Revision: D6332813 Pulled By: rafeca fbshipit-source-id: 1902afa8eb77a59e813cefc8e7f650a0106edfef
This commit is contained in:
parent
f0a4418b5b
commit
8ee5385e5c
108
circle.yml
108
circle.yml
|
@ -1,28 +1,82 @@
|
||||||
machine:
|
aliases:
|
||||||
environment:
|
- &restore-cache
|
||||||
YARN_VERSION: 0.24.3
|
keys:
|
||||||
PATH: "${PATH}:${HOME}/.yarn/bin:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
|
- dependencies-{{ .Branch }}-{{ checksum "package.json" }}
|
||||||
node:
|
# Fallback in case checksum fails
|
||||||
version: 8
|
- dependencies-{{ .Branch }}-
|
||||||
dependencies:
|
|
||||||
pre:
|
|
||||||
- |
|
|
||||||
if [[ ! -e ~/.yarn/bin/yarn || $(yarn --version) != "${YARN_VERSION}" ]]; then
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION
|
|
||||||
fi
|
|
||||||
- nvm install 4
|
|
||||||
- nvm install 6
|
|
||||||
|
|
||||||
cache_directories:
|
- &save-cache
|
||||||
- ~/.yarn
|
paths:
|
||||||
- ~/.cache/yarn
|
- node_modules
|
||||||
override:
|
key: dependencies-{{ .Branch }}-{{ checksum "package.json" }}
|
||||||
- yarn install --no-progress
|
|
||||||
test:
|
- &deploy
|
||||||
override:
|
working_directory: packages/metro-bundler
|
||||||
- nvm alias default 6
|
steps:
|
||||||
- yarn run test-ci
|
- run: npm run prepare-release
|
||||||
- nvm alias default 4
|
- run: npm publish
|
||||||
- yarn run test-ci
|
- run: npm run cleanup-release
|
||||||
- nvm alias default 8
|
|
||||||
- yarn run test-ci
|
version: 2
|
||||||
|
jobs:
|
||||||
|
test-node-9:
|
||||||
|
working_directory: ~/metro-bundler/packager/metro-bundler
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:9
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore-cache: *restore-cache
|
||||||
|
- run: yarn --no-progress
|
||||||
|
- save-cache: *save-cache
|
||||||
|
- run: yarn run test-ci
|
||||||
|
|
||||||
|
test-node-8:
|
||||||
|
working_directory: ~/metro-bundler/packager/metro-bundler
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore-cache: *restore-cache
|
||||||
|
- run: yarn --no-progress
|
||||||
|
- save-cache: *save-cache
|
||||||
|
- run: yarn run test-ci
|
||||||
|
|
||||||
|
test-node-6:
|
||||||
|
working_directory: ~/metro-bundler/packager/metro-bundler
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:6
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore-cache: *restore-cache
|
||||||
|
- run: sudo npm i -g yarn@^1.2.1
|
||||||
|
- run: yarn --no-progress
|
||||||
|
- save-cache: *save-cache
|
||||||
|
- run: yarn run test-ci
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
working_directory: ~/metro-bundler/packager/metro-bundler
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore-cache: *restore-cache
|
||||||
|
- run:
|
||||||
|
working_directory: packages/metro-bundler
|
||||||
|
command: yarn --no-progress
|
||||||
|
- save-cache: *save-cache
|
||||||
|
- deploy: *deploy
|
||||||
|
|
||||||
|
# Workflows enables us to run multiple jobs in parallel
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
build-and-deploy:
|
||||||
|
jobs:
|
||||||
|
- test-node-9
|
||||||
|
- test-node-8
|
||||||
|
- test-node-6
|
||||||
|
- deploy:
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
ignore: /.*/
|
||||||
|
tags:
|
||||||
|
only: /v[0-9]+(\.[0-9]+)*/
|
||||||
|
|
Loading…
Reference in New Issue