From 3256f2b3e4052872f1aca1d76eb5e58a1af54c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=82=BD=E9=94=AE?= <397201698@qq.com> Date: Mon, 16 Aug 2021 23:47:37 +0800 Subject: [PATCH] ci --- .dockerignore | 3 ++ .drone copy.yml | 68 +++++++++++++++++++++++++++++++++++++++++++++ .drone.yml | 73 +++++++++++++++++++------------------------------ .gitignore | 4 ++- Dockerfile | 16 +++++++++++ pm2.sh | 5 ++++ 6 files changed, 123 insertions(+), 46 deletions(-) create mode 100644 .dockerignore create mode 100644 .drone copy.yml create mode 100644 Dockerfile create mode 100644 pm2.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..86ccac0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules +.tags +.tags \ No newline at end of file diff --git a/.drone copy.yml b/.drone copy.yml new file mode 100644 index 0000000..12a3102 --- /dev/null +++ b/.drone copy.yml @@ -0,0 +1,68 @@ +kind: pipeline +type: exec +name: dev-admin-backend + +node: + mode: dev2 + +trigger: + branch: ci + +steps: + - name: inject-file + environment: + ORMCONFIG: + from_secret: ORMCONFIG + ENV: + from_secret: ENV + commands: + - echo -n "$ORMCONFIG" > ormconfig.json + - echo -n "$ENV" > config/.env + + - name: build + commands: + - rm package-lock.json || true + - yarn + - yarn build + - export HOME=/root + - pm2 del dev-admin-backend || true + - mkdir /opt/nodewww/dev-admin-backend || rm -rf /opt/nodewww/dev-admin-backend/* + - mv ./* /opt/nodewww/dev-admin-backend + + + - name: deploy + commands: + - cd /opt/nodewww/express-admin-template + - export OLDHOME=$HOME + - export HOME=/root + - pm2 start -i 0 --name dev-admin-backend ./bin/www + - pm2 startup + - pm2 save + + +--- +kind: pipeline +type: docker +name: dev-admin-backend-builder + +node: + mode: dev + +trigger: + branch: ci + +steps: + - name: build-docker-image + image: plugins/docker + pull: if-not-exists + settings: + username: + from_secret: docker_reg_username + password: + from_secret: docker_reg_password + repo: docker.zcj.plus/zhouchijian/express-admin-template + tags: dev + registry: https://docker.zcj.plus + +depends_on: + - dev-admin-backend diff --git a/.drone.yml b/.drone.yml index 12a3102..e089ff4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,68 +1,51 @@ kind: pipeline -type: exec -name: dev-admin-backend +type: docker +name: release node: - mode: dev2 + mode: dev trigger: - branch: ci - + event: + - tag + + steps: - - name: inject-file - environment: - ORMCONFIG: - from_secret: ORMCONFIG - ENV: - from_secret: ENV - commands: - - echo -n "$ORMCONFIG" > ormconfig.json - - echo -n "$ENV" > config/.env - - - name: build - commands: - - rm package-lock.json || true - - yarn - - yarn build - - export HOME=/root - - pm2 del dev-admin-backend || true - - mkdir /opt/nodewww/dev-admin-backend || rm -rf /opt/nodewww/dev-admin-backend/* - - mv ./* /opt/nodewww/dev-admin-backend - - - name: deploy - commands: - - cd /opt/nodewww/express-admin-template - - export OLDHOME=$HOME - - export HOME=/root - - pm2 start -i 0 --name dev-admin-backend ./bin/www - - pm2 startup - - pm2 save - + - name: build-image + image: plugins/docker + pull: if-not-exists + settings: + username: + from_secret: repo_username + password: + from_secret: repo_password + repo: docker.zcj.plus/zhouchijian/demo/express-template + registry: https://docker.zcj.plus --- kind: pipeline type: docker -name: dev-admin-backend-builder +name: dev node: mode: dev trigger: - branch: ci - + event: + - push + branch: + - ci + steps: - - name: build-docker-image + + - name: build-image image: plugins/docker pull: if-not-exists settings: username: - from_secret: docker_reg_username + from_secret: repo_username password: - from_secret: docker_reg_password - repo: docker.zcj.plus/zhouchijian/express-admin-template - tags: dev + from_secret: repo_password + repo: docker.zcj.plus/zhouchijian/demo/express-template registry: https://docker.zcj.plus - -depends_on: - - dev-admin-backend diff --git a/.gitignore b/.gitignore index f0bb7ba..67fcc37 100644 --- a/.gitignore +++ b/.gitignore @@ -62,4 +62,6 @@ typings/ dist -ormconfig.json \ No newline at end of file +ormconfig.json + +.tags \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0cf62fd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:lts-stretch + +WORKDIR /src + +COPY . . + +RUN cp ormconfig.example.json ormconfig.json && \ + cp example.env .env && \ + yarn && \ + npm install pm2 -g + +EXPOSE 80-60000 + +VOLUME ['/src'] + +CMD ["./pm2.sh"] \ No newline at end of file diff --git a/pm2.sh b/pm2.sh new file mode 100644 index 0000000..b01310c --- /dev/null +++ b/pm2.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +pm2 start --name express-template ./www -i 0 + +pm2 log \ No newline at end of file