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:
|
||||
environment:
|
||||
YARN_VERSION: 0.24.3
|
||||
PATH: "${PATH}:${HOME}/.yarn/bin:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
|
||||
node:
|
||||
version: 8
|
||||
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
|
||||
aliases:
|
||||
- &restore-cache
|
||||
keys:
|
||||
- dependencies-{{ .Branch }}-{{ checksum "package.json" }}
|
||||
# Fallback in case checksum fails
|
||||
- dependencies-{{ .Branch }}-
|
||||
|
||||
cache_directories:
|
||||
- ~/.yarn
|
||||
- ~/.cache/yarn
|
||||
override:
|
||||
- yarn install --no-progress
|
||||
test:
|
||||
override:
|
||||
- nvm alias default 6
|
||||
- yarn run test-ci
|
||||
- nvm alias default 4
|
||||
- yarn run test-ci
|
||||
- nvm alias default 8
|
||||
- yarn run test-ci
|
||||
- &save-cache
|
||||
paths:
|
||||
- node_modules
|
||||
key: dependencies-{{ .Branch }}-{{ checksum "package.json" }}
|
||||
|
||||
- &deploy
|
||||
working_directory: packages/metro-bundler
|
||||
steps:
|
||||
- run: npm run prepare-release
|
||||
- run: npm publish
|
||||
- run: npm run cleanup-release
|
||||
|
||||
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