From f958bfbc516304e3199fb1e97b6fd11a5494dde6 Mon Sep 17 00:00:00 2001 From: Ambrose Chua Date: Sat, 23 Mar 2019 23:01:26 +0800 Subject: [PATCH 1/4] Try using setting and plugin --- .drone.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 078552a..9e551e6 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,9 +3,13 @@ name: auth clone: depth: 5 recursive: true - submodule_override: - backend-auth: https://git.makerforce.io/beep/backend-auth.git steps: +- name: submodules + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: https://git.makerforce.io/beep/backend-auth.git - name: docker image: plugins/docker settings: From fc79a0e02a721b4964ccc53fc9b335e6f14097ad Mon Sep 17 00:00:00 2001 From: Ambrose Chua Date: Sat, 23 Mar 2019 23:27:04 +0800 Subject: [PATCH 2/4] Add drone generator script --- .drone.yml | 332 ++++++++++++++++++++++++++++----------------------- .gitignore | 1 + backend-auth | 2 +- drone_gen.js | 50 ++++++++ package.json | 9 ++ yarn.lock | 28 +++++ 6 files changed, 274 insertions(+), 148 deletions(-) create mode 100644 .gitignore create mode 100644 drone_gen.js create mode 100644 package.json create mode 100644 yarn.lock diff --git a/.drone.yml b/.drone.yml index 9e551e6..0758904 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,191 +1,229 @@ kind: pipeline -name: auth +name: backend-auth clone: depth: 5 - recursive: true steps: -- name: submodules - image: plugins/git - settings: - recursive: true - submodule_override: - backend-auth: https://git.makerforce.io/beep/backend-auth.git -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-auth - context: backend-auth/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-auth + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: bite +name: backend-bite clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-bite - context: backend-bite/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-bite.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-bite + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: core +name: backend-core clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-core - context: backend-core/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-core.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-core + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: heartbeat +name: backend-heartbeat clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-heartbeat - context: backend-heartbeat/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-heartbeat.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-heartbeat + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: login +name: backend-login clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-login - context: backend-login/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-login.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-login + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: publish +name: backend-publish clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-publish - context: backend-publish/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-publish.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-publish + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: signal +name: backend-signal clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-signal - context: backend-signal/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-signal.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-signal + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: store +name: backend-store clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-store - context: backend-store/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-store.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-store + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password --- kind: pipeline -name: subscribe +name: backend-subscribe clone: depth: 5 steps: -- name: submodules - image: docker:git - commands: - - git submodule update --init --recursive --remote -- name: docker - image: plugins/docker - settings: - registry: registry.makerforce.io - repo: registry.makerforce.io/beep/backend-subscribe - context: backend-subscribe/ - auto_tag: true - username: - from_secret: docker_username - password: - from_secret: docker_password + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-subscribe.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-subscribe + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password +--- +kind: pipeline +name: backend-transcription +clone: + depth: 5 +steps: + - name: submodule + image: plugins/git + settings: + recursive: true + submodule_override: + backend-auth: 'https://git.makerforce.io/beep/backend-transcription.git' + - name: docker + image: plugins/docker + settings: + registry: registry.makerforce.io + repo: registry.makerforce.io/beep/backend-transcription + context: backend-subscribe + auto_tag: true + username: + from_secret: docker_username + password: + from_secret: docker_password diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/backend-auth b/backend-auth index 6986ae3..98566ca 160000 --- a/backend-auth +++ b/backend-auth @@ -1 +1 @@ -Subproject commit 6986ae3eb5e570536af4838478825b0bfb977408 +Subproject commit 98566ca24f3e129a83a137ac0235636b892a9fcb diff --git a/drone_gen.js b/drone_gen.js new file mode 100644 index 0000000..517c312 --- /dev/null +++ b/drone_gen.js @@ -0,0 +1,50 @@ +const fs = require('fs'); +const path = require('path'); +const cwd = process.cwd(); +const yaml = require('js-yaml'); + +const folders = fs.readdirSync(cwd, { withFileTypes: true }); +const dockers = folders.filter(f => + f.isDirectory() && fs.readdirSync(path.join(cwd, f.name)).includes('Dockerfile') +).map(f => + f.name +); + +const droneyml = dockers.map(f => yaml.safeDump({ + kind: 'pipeline', + name: f, + clone: { + depth: 5, + }, + steps: [ + { + name: 'submodule', + image: 'plugins/git', + settings: { + recursive: true, + submodule_override: { + 'backend-auth': 'https://git.makerforce.io/beep/' + f + '.git', + }, + }, + }, + { + name: 'docker', + image: 'plugins/docker', + settings: { + registry: 'registry.makerforce.io', + repo: 'registry.makerforce.io/beep/' + f, + context: 'backend-subscribe', + auto_tag: true, + username: { + from_secret: 'docker_username', + }, + password: { + from_secret: 'docker_password', + }, + }, + }, + ], +})).join('---\n'); + +fs.writeFileSync(path.join(cwd, '.drone.yml'), droneyml); +console.log('Written to .drone.yml'); diff --git a/package.json b/package.json new file mode 100644 index 0000000..d4f3bf8 --- /dev/null +++ b/package.json @@ -0,0 +1,9 @@ +{ + "name": "backend", + "version": "0.1.7", + "author": "Beep", + "private": true, + "dependencies": { + "js-yaml": "^3.13.0" + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..876ae29 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,28 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +js-yaml@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e" + integrity sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= From 664a4309cc41e06a349ec364becfbf7903ac95f7 Mon Sep 17 00:00:00 2001 From: Ambrose Chua Date: Sat, 23 Mar 2019 23:48:01 +0800 Subject: [PATCH 3/4] Switch to submodule_replacements --- .drone.yml | 187 +++++++++++++++++++++++++++++++++++++++++++-------- drone_gen.js | 45 ++++++++++--- 2 files changed, 194 insertions(+), 38 deletions(-) diff --git a/.drone.yml b/.drone.yml index 0758904..8712c0b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,7 +1,7 @@ kind: pipeline name: backend-auth clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git @@ -9,12 +9,23 @@ steps: recursive: true submodule_override: backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-auth - context: backend-subscribe + context: backend-auth + dockerfile: backend-auth/Dockerfile auto_tag: true username: from_secret: docker_username @@ -24,20 +35,31 @@ steps: kind: pipeline name: backend-bite clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-bite.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-bite - context: backend-subscribe + context: backend-bite + dockerfile: backend-bite/Dockerfile auto_tag: true username: from_secret: docker_username @@ -47,20 +69,31 @@ steps: kind: pipeline name: backend-core clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-core.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-core - context: backend-subscribe + context: backend-core + dockerfile: backend-core/Dockerfile auto_tag: true username: from_secret: docker_username @@ -70,20 +103,31 @@ steps: kind: pipeline name: backend-heartbeat clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-heartbeat - context: backend-subscribe + context: backend-heartbeat + dockerfile: backend-heartbeat/Dockerfile auto_tag: true username: from_secret: docker_username @@ -93,20 +137,31 @@ steps: kind: pipeline name: backend-login clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-login.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-login - context: backend-subscribe + context: backend-login + dockerfile: backend-login/Dockerfile auto_tag: true username: from_secret: docker_username @@ -116,20 +171,31 @@ steps: kind: pipeline name: backend-publish clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-publish.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-publish - context: backend-subscribe + context: backend-publish + dockerfile: backend-publish/Dockerfile auto_tag: true username: from_secret: docker_username @@ -139,20 +205,31 @@ steps: kind: pipeline name: backend-signal clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-signal.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-signal - context: backend-subscribe + context: backend-signal + dockerfile: backend-signal/Dockerfile auto_tag: true username: from_secret: docker_username @@ -162,20 +239,31 @@ steps: kind: pipeline name: backend-store clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-store.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-store - context: backend-subscribe + context: backend-store + dockerfile: backend-store/Dockerfile auto_tag: true username: from_secret: docker_username @@ -185,20 +273,31 @@ steps: kind: pipeline name: backend-subscribe clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-subscribe context: backend-subscribe + dockerfile: backend-subscribe/Dockerfile auto_tag: true username: from_secret: docker_username @@ -208,22 +307,54 @@ steps: kind: pipeline name: backend-transcription clone: - depth: 5 + depth: 1 steps: - name: submodule image: plugins/git settings: recursive: true submodule_override: - backend-auth: 'https://git.makerforce.io/beep/backend-transcription.git' + backend-auth: 'https://git.makerforce.io/beep/backend-auth.git' + backend-bite: 'https://git.makerforce.io/beep/backend-bite.git' + backend-core: 'https://git.makerforce.io/beep/backend-core.git' + backend-heartbeat: 'https://git.makerforce.io/beep/backend-heartbeat.git' + backend-login: 'https://git.makerforce.io/beep/backend-login.git' + backend-protobuf: 'https://git.makerforce.io/beep/backend-protobuf.git' + backend-publish: 'https://git.makerforce.io/beep/backend-publish.git' + backend-signal: 'https://git.makerforce.io/beep/backend-signal.git' + backend-store: 'https://git.makerforce.io/beep/backend-store.git' + backend-subscribe: 'https://git.makerforce.io/beep/backend-subscribe.git' + backend-transcription: 'https://git.makerforce.io/beep/backend-transcription.git' - name: docker image: plugins/docker settings: registry: registry.makerforce.io repo: registry.makerforce.io/beep/backend-transcription - context: backend-subscribe + context: backend-transcription + dockerfile: backend-transcription/Dockerfile auto_tag: true username: from_secret: docker_username password: from_secret: docker_password +--- +kind: pipeline +name: deploy +clone: + depth: 1 +steps: + - name: nop + image: 'alpine:3.8' + commands: + - echo nop +depends_on: + - backend-auth + - backend-bite + - backend-core + - backend-heartbeat + - backend-login + - backend-publish + - backend-signal + - backend-store + - backend-subscribe + - backend-transcription diff --git a/drone_gen.js b/drone_gen.js index 517c312..feda30b 100644 --- a/drone_gen.js +++ b/drone_gen.js @@ -4,17 +4,23 @@ const cwd = process.cwd(); const yaml = require('js-yaml'); const folders = fs.readdirSync(cwd, { withFileTypes: true }); +const submodules = folders.filter(f => + f.isDirectory() && fs.readdirSync(path.join(cwd, f.name)).includes('.git') +).map(f => f.name); const dockers = folders.filter(f => f.isDirectory() && fs.readdirSync(path.join(cwd, f.name)).includes('Dockerfile') -).map(f => - f.name -); +).map(f => f.name); -const droneyml = dockers.map(f => yaml.safeDump({ +const submodule_override = submodules.reduce((acc, f) => { + acc[f] = 'https://git.makerforce.io/beep/' + f + '.git'; + return acc; +}, {}); + +const yamls = dockers.map(f => ({ kind: 'pipeline', name: f, clone: { - depth: 5, + depth: 1, }, steps: [ { @@ -22,9 +28,7 @@ const droneyml = dockers.map(f => yaml.safeDump({ image: 'plugins/git', settings: { recursive: true, - submodule_override: { - 'backend-auth': 'https://git.makerforce.io/beep/' + f + '.git', - }, + submodule_override, }, }, { @@ -33,7 +37,8 @@ const droneyml = dockers.map(f => yaml.safeDump({ settings: { registry: 'registry.makerforce.io', repo: 'registry.makerforce.io/beep/' + f, - context: 'backend-subscribe', + context: f, + dockerfile: f + '/Dockerfile', auto_tag: true, username: { from_secret: 'docker_username', @@ -44,7 +49,27 @@ const droneyml = dockers.map(f => yaml.safeDump({ }, }, ], -})).join('---\n'); +})) + +const deploy = { + kind: 'pipeline', + name: 'deploy', + clone: { + depth: 1, + }, + steps: [ + { + name: 'nop', + image: 'alpine:3.8', + commands: [ + 'echo nop', + ], + }, + ], + depends_on: dockers, +}; + +const droneyml = [].concat(yamls).concat(deploy).map(yaml.safeDump).join('---\n'); fs.writeFileSync(path.join(cwd, '.drone.yml'), droneyml); console.log('Written to .drone.yml'); From dc412a2411509c604f2c337ebb074d47c17e877e Mon Sep 17 00:00:00 2001 From: Ambrose Chua Date: Sun, 24 Mar 2019 00:31:41 +0800 Subject: [PATCH 4/4] Send help generate --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index d4f3bf8..b77f5da 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "version": "0.1.7", "author": "Beep", "private": true, + "scripts": { + "generate": "node drone_gen.js" + }, "dependencies": { "js-yaml": "^3.13.0" }