2018-10-30 04:36:14 +01:00
|
|
|
version: 2.1
|
2018-10-29 13:48:35 +01:00
|
|
|
|
2018-10-30 04:36:14 +01:00
|
|
|
executors:
|
|
|
|
default:
|
2019-02-09 18:17:43 +01:00
|
|
|
working_directory: /tmp/workspace
|
|
|
|
docker:
|
2019-05-12 10:27:27 +02:00
|
|
|
- image: misskey/ci:v11-node11
|
2019-05-12 10:38:37 +02:00
|
|
|
- image: misskey/ci:latest
|
|
|
|
- image: circleci/mongo:latest
|
|
|
|
with-redis:
|
|
|
|
working_directory: /tmp/workspace
|
|
|
|
docker:
|
|
|
|
- image: misskey/ci:latest
|
|
|
|
- image: circleci/mongo:latest
|
2018-10-30 04:36:14 +01:00
|
|
|
- image: circleci/redis:latest
|
2019-05-12 10:27:27 +02:00
|
|
|
- image: circleci/postgres:latest
|
2018-10-30 04:36:14 +01:00
|
|
|
docker:
|
|
|
|
working_directory: /tmp/workspace
|
2018-10-26 20:46:48 +02:00
|
|
|
docker:
|
2018-10-30 04:36:14 +01:00
|
|
|
- image: docker:latest
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
executor: default
|
2018-10-26 20:46:48 +02:00
|
|
|
steps:
|
|
|
|
- checkout
|
2019-01-27 12:19:24 +01:00
|
|
|
- run:
|
|
|
|
name: Ensure yarn.lock
|
|
|
|
command: |
|
|
|
|
touch yarn.lock
|
2018-10-30 04:36:14 +01:00
|
|
|
- restore_cache:
|
|
|
|
name: Restore npm package caches
|
|
|
|
keys:
|
2019-01-27 12:13:06 +01:00
|
|
|
- yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
|
|
|
|
- yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-
|
|
|
|
- yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-
|
|
|
|
- yarn-v1-arch-{{ arch }}-
|
|
|
|
- yarn-v1-
|
2018-10-26 20:46:48 +02:00
|
|
|
- run:
|
2018-10-30 04:36:14 +01:00
|
|
|
name: Install Dependencies
|
2018-10-26 20:46:48 +02:00
|
|
|
command: |
|
2019-02-03 08:57:36 +01:00
|
|
|
yarn install
|
2018-10-26 20:46:48 +02:00
|
|
|
- run:
|
2018-10-30 04:36:14 +01:00
|
|
|
name: Configure
|
2018-10-26 20:46:48 +02:00
|
|
|
command: |
|
2018-11-05 22:12:51 +01:00
|
|
|
cp .circleci/misskey/default.yml .config
|
|
|
|
cp .circleci/misskey/test.yml .config
|
2018-10-26 20:46:48 +02:00
|
|
|
- run:
|
2018-10-30 04:36:14 +01:00
|
|
|
name: Build
|
2018-10-26 20:46:48 +02:00
|
|
|
command: |
|
2019-01-27 12:13:06 +01:00
|
|
|
yarn build
|
2019-01-27 12:19:24 +01:00
|
|
|
touch yarn.lock
|
2018-10-30 04:36:14 +01:00
|
|
|
- save_cache:
|
|
|
|
name: Cache npm packages
|
2019-01-27 12:13:06 +01:00
|
|
|
key: yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
|
2018-10-30 04:36:14 +01:00
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
- persist_to_workspace:
|
|
|
|
root: .
|
|
|
|
paths:
|
|
|
|
- .
|
|
|
|
test:
|
|
|
|
parameters:
|
2019-02-09 18:17:43 +01:00
|
|
|
executor:
|
2018-10-30 04:36:14 +01:00
|
|
|
type: string
|
2019-02-09 18:17:43 +01:00
|
|
|
default: "default"
|
2019-05-12 10:39:03 +02:00
|
|
|
without_redis:
|
|
|
|
type: boolean
|
|
|
|
default: false
|
2019-02-09 18:17:43 +01:00
|
|
|
executor: <<parameters.executor>>
|
2018-10-30 04:36:14 +01:00
|
|
|
steps:
|
|
|
|
- attach_workspace:
|
|
|
|
at: /tmp/workspace
|
2019-05-12 10:39:03 +02:00
|
|
|
- when:
|
|
|
|
condition: <<parameters.without_redis>>
|
|
|
|
steps:
|
|
|
|
- run:
|
|
|
|
name: Configure
|
|
|
|
command: |
|
|
|
|
mv .config/test.yml .config/test_redis.yml
|
|
|
|
touch .config/test.yml
|
|
|
|
cat .config/test_redis.yml | while IFS= read line; do if [[ "$line" = '# __REDIS__' ]]; then break; else echo "$line" >> .config/test.yml; fi; done
|
2018-10-26 20:46:48 +02:00
|
|
|
- run:
|
2018-10-30 04:36:14 +01:00
|
|
|
name: Test
|
2018-10-26 20:46:48 +02:00
|
|
|
command: |
|
2019-01-27 12:13:06 +01:00
|
|
|
yarn test
|
2019-01-27 12:19:24 +01:00
|
|
|
touch yarn.lock
|
2018-10-30 04:36:14 +01:00
|
|
|
- save_cache:
|
|
|
|
name: Cache npm packages
|
2019-01-27 12:13:06 +01:00
|
|
|
key: yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
|
2018-10-30 04:36:14 +01:00
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
docker:
|
|
|
|
parameters:
|
|
|
|
with_deploy:
|
2019-02-09 18:17:43 +01:00
|
|
|
type: boolean
|
|
|
|
default: false
|
2018-10-30 04:36:14 +01:00
|
|
|
executor: docker
|
2018-10-26 20:46:48 +02:00
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- setup_remote_docker
|
|
|
|
- run:
|
2018-10-30 04:36:14 +01:00
|
|
|
name: Build
|
2018-10-26 20:46:48 +02:00
|
|
|
command: |
|
2018-11-06 18:06:32 +01:00
|
|
|
docker build -t misskey/misskey .
|
2018-10-30 04:36:14 +01:00
|
|
|
- when:
|
|
|
|
condition: <<parameters.with_deploy>>
|
|
|
|
steps:
|
|
|
|
- run:
|
|
|
|
name: Deploy
|
|
|
|
command: |
|
2018-10-31 14:00:21 +01:00
|
|
|
if [ "$DOCKERHUB_USERNAME$DOCKERHUB_PASSWORD" ]
|
|
|
|
then
|
2018-11-11 13:34:50 +01:00
|
|
|
apk update && apk add jq
|
2018-11-08 10:49:45 +01:00
|
|
|
docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version)
|
2018-10-31 14:00:21 +01:00
|
|
|
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
|
|
|
|
docker push misskey/misskey
|
|
|
|
else
|
|
|
|
echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m'
|
|
|
|
fi
|
2018-10-26 20:46:48 +02:00
|
|
|
|
|
|
|
workflows:
|
|
|
|
version: 2
|
2019-02-09 18:17:43 +01:00
|
|
|
nodejs:
|
2018-10-26 20:46:48 +02:00
|
|
|
jobs:
|
2019-02-16 03:10:06 +01:00
|
|
|
- hold:
|
2019-02-17 18:44:46 +01:00
|
|
|
name: manual-build-trigger
|
2019-02-16 03:10:06 +01:00
|
|
|
type: approval
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
2018-11-08 10:49:45 +01:00
|
|
|
- build:
|
2019-02-17 18:44:46 +01:00
|
|
|
name: manual-build
|
2019-02-16 03:10:06 +01:00
|
|
|
requires:
|
2019-02-17 18:44:46 +01:00
|
|
|
- manual-build-trigger
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
|
|
|
- build:
|
|
|
|
name: auto-build
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|
2018-10-30 04:36:14 +01:00
|
|
|
- test:
|
2019-05-12 10:39:03 +02:00
|
|
|
name: manual-test-with-redis
|
|
|
|
executor: with-redis
|
|
|
|
requires:
|
|
|
|
- manual-build
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
|
|
|
- test:
|
|
|
|
name: auto-test-without-redis
|
|
|
|
executor: with-redis
|
|
|
|
requires:
|
|
|
|
- auto-build
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|
|
|
|
- test:
|
|
|
|
name: manual-test-with-redis
|
|
|
|
without_redis: true
|
2018-10-30 04:36:14 +01:00
|
|
|
requires:
|
2019-02-17 18:44:46 +01:00
|
|
|
- manual-build
|
2019-02-16 09:05:56 +01:00
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
2019-02-17 18:44:46 +01:00
|
|
|
- test:
|
2019-05-12 10:39:03 +02:00
|
|
|
name: auto-test-without-redis
|
|
|
|
without_redis: true
|
2019-02-17 18:44:46 +01:00
|
|
|
requires:
|
|
|
|
- auto-build
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|
|
|
|
docker:
|
|
|
|
jobs:
|
2019-02-09 18:17:43 +01:00
|
|
|
- hold:
|
2019-02-17 18:44:46 +01:00
|
|
|
name: manual-build-trigger
|
2019-02-09 18:17:43 +01:00
|
|
|
type: approval
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
|
|
|
- docker:
|
2019-02-17 18:44:46 +01:00
|
|
|
name: manual-build
|
2019-02-09 18:17:43 +01:00
|
|
|
requires:
|
2019-02-17 18:44:46 +01:00
|
|
|
- manual-build-trigger
|
2019-02-09 18:17:43 +01:00
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
2018-10-30 04:36:14 +01:00
|
|
|
- docker:
|
2019-02-17 18:44:46 +01:00
|
|
|
name: auto-build
|
2019-02-09 18:17:43 +01:00
|
|
|
with_deploy: true
|
2018-10-30 04:36:14 +01:00
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|