From 73cd1d794a11c951e1a709b0113fbb7b3dab13cf Mon Sep 17 00:00:00 2001 From: mifi Date: Tue, 9 May 2023 18:51:46 -0400 Subject: [PATCH] Finalized drone pipeline (mostly) --- .drone.yml | 367 ++++++++++++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 170 insertions(+), 199 deletions(-) diff --git a/.drone.yml b/.drone.yml index 17dd2f1..c7094cb 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,70 +1,70 @@ -# kind: pipeline -# type: docker -# name: Test Pipeline +kind: pipeline +type: docker +name: Test Pipeline -# workspace: -# path: /drone/grow +workspace: + path: /drone/grow -# steps: -# - name: yarn install -# image: node:latest -# commands: -# - yarn install -# - name: Code Style Checks -# image: node:latest -# commands: -# - yarn prettier -# - name: Lint -# image: node:latest -# commands: -# - yarn lint -# - name: Unit Tests -# image: node:latest -# commands: -# - yarn test -# - name: Send Test Status Notification -# image: plugins/webhook -# settings: -# urls: https://lab.mifi.dev/hooks/9p65zpagctgkmndo8nwwm4199r -# content_type: application/json -# template: | -# { -# "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", -# "text": "[{{ repo.name }} - Build # {{ build.number }}] Code Quality Checks {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", -# "username":"DroneBot" -# } -# when: -# status: -# - success -# - failure -# - name: Build -# image: node:latest -# commands: -# - yarn build -# - name: Send Build Status Notifications -# image: plugins/webhook -# settings: -# urls: https://lab.mifi.dev/hooks/9p65zpagctgkmndo8nwwm4199r -# content_type: application/json -# template: | -# { -# "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", -# "text": "[{{ repo.name }} - Build # {{ build.number }}] Build package {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", -# "username":"DroneBot" -# } -# when: -# status: -# - success -# - failure +steps: +- name: yarn install + image: node:latest + commands: + - yarn install +- name: Code Style Checks + image: node:latest + commands: + - yarn prettier +- name: Lint + image: node:latest + commands: + - yarn lint +- name: Unit Tests + image: node:latest + commands: + - yarn test +- name: Send Test Status Notification + image: plugins/webhook + settings: + urls: https://lab.mifi.dev/hooks/9p65zpagctgkmndo8nwwm4199r + content_type: application/json + template: | + { + "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", + "text": "[{{ repo.name }} - Build # {{ build.number }}] Code Quality Checks {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", + "username":"DroneBot" + } + when: + status: + - success + - failure +- name: Build + image: node:latest + commands: + - yarn build +- name: Send Build Status Notifications + image: plugins/webhook + settings: + urls: https://lab.mifi.dev/hooks/9p65zpagctgkmndo8nwwm4199r + content_type: application/json + template: | + { + "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", + "text": "[{{ repo.name }} - Build # {{ build.number }}] Build package {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", + "username":"DroneBot" + } + when: + status: + - success + - failure -# trigger: -# branch: -# - main -# event: -# # - pull_request -# - push +trigger: + branch: + - main + event: + # - pull_request + - push -# --- +--- kind: pipeline type: docker name: Publish Pipeline @@ -73,76 +73,47 @@ workspace: path: /drone/grow steps: -# - name: Build Package -# image: node:latest -# commands: -# - yarn install -# - yarn build -# - name: Publish NPM -# image: node:20-alpine -# failure: ignore -# commands: -# - yarn publish -t ${DRONE_TAG} -# volumes: -# - name: npmrc -# path: /drone/grow/.npmrc -# - name: Publish NPM -# image: plugins/npm -# failure: ignore -# settings: -# username: -# from_secret: registry_username -# password: -# from_secret: registry_password -# registry: https://git.mifi.dev/api/packages/mifi/npm -# token: -# - from_secret: gitea_token -# volumes: -# - name: npmrc -# path: /drone/grow/.npmrc -# - name: Report NPM Publish Status -# image: plugins/webhook -# settings: -# urls: https://lab.mifi.dev/hooks/ccw34hdf7tgbjmzp96nptn938r -# content_type: application/json -# template: | -# { -# "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", -# "text": "[{{ repo.name }} - New npm package release {{tag}} from # {{ build.number }}] Deploy {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", -# "username":"DroneBot" -# } -# when: -# status: -# - success -# - failure -- name: Publish Image - image: docker - failure: ignore - environment: - DOCKER_TOKEN: - from_secret: reg_token +- name: Build Package + image: node:latest commands: - - 'echo $DOCKER_TOKEN | docker login git.mifi.dev -u mifi --password-stdin' - - 'docker build -t git.mifi.dev/mifi/mifi/auth:latest -t git.mifi.dev/mifi/mifi/auth:${DRONE_TAG:-latest} .' - - docker push git.mifi.dev/mifi/mifi/auth:latest + - yarn install + - yarn build +- name: Publish NPM + image: node:20-alpine + failure: ignore + commands: + - yarn publish -t ${DRONE_TAG} volumes: - - name: dockersock - path: /var/run/docker.sock - - name: dockerconfig - path: /drone/grow/.docker/config.json -# - name: Publish Image (plugin) -# image: plugins/docker -# settings: -# auto_tag: true -# repo: git.mifi.dev/mifi/mifi/auth -# registry: git.mifi.dev -# debug: true -# ssh-agent-key: -# from_secret: reg_token -# username: -# password: -# from_secret: reg_token -# secrets: [reg_token] + - name: npmrc + path: /drone/grow/.npmrc +- name: Report NPM Publish Status + image: plugins/webhook + settings: + urls: https://lab.mifi.dev/hooks/ccw34hdf7tgbjmzp96nptn938r + content_type: application/json + template: | + { + "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", + "text": "[{{ repo.name }} - New npm package release {{tag}} from # {{ build.number }}] Deploy {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", + "username":"DroneBot" + } + when: + status: + - success + - failure +- name: Publish Image + image: plugins/docker + settings: + auto_tag: true + repo: git.mifi.dev/mifi/mifi/auth + registry: git.mifi.dev + debug: true + ssh-agent-key: + from_secret: reg_token + username: + password: + from_secret: reg_token + secrets: [reg_token] - name: Report Image Publish Status image: plugins/webhook settings: @@ -170,79 +141,79 @@ volumes: host: path: /volume1/docker/beethoven/labs-auth/.npmrc -# depends_on: -# - Test Pipeline +depends_on: + - Test Pipeline trigger: - branch: - - main + # branch: + # - main event: - - push - # - tag + # - push + - tag -# --- -# kind: pipeline -# type: docker -# name: Deploy Pipeline +--- +kind: pipeline +type: docker +name: Deploy Pipeline -# workspace: -# path: /drone/grow +workspace: + path: /drone/grow -# steps: -# - name: Deploy Container -# image: docker -# privileged: true -# environment: -# CONTAINER_PREFIX: staging -# HOST: area51.mifi.dev -# ROUTE_PREFIX: /auth -# PORT: 9001 -# commands: -# - docker compose -f docker-compose.staging.yml pull -# - docker compose -f docker-compose.staging.yml build --no-cache -# - docker compose -f docker-compose.staging.yml rm --stop -# - docker compose -f docker-compose.staging.yml up --wait -# volumes: -# - name: env-secrets -# path: /drone/grow/staging.env -# - name: dockersock -# path: /var/run/docker.sock -# - name: dockerconfig -# path: /drone/grow/.docker/config.json -# - name: Send Status Notifications -# image: plugins/webhook -# privileged: true -# settings: -# urls: https://lab.mifi.dev/hooks/ccw34hdf7tgbjmzp96nptn938r -# content_type: application/json -# template: | -# { -# "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", -# "text": "[{{ repo.name }} - Build # {{ build.number }}] Deploy {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", -# "username":"DroneBot" -# } -# when: -# status: -# - success -# - failure +steps: +- name: Deploy Container + image: docker + privileged: true + environment: + CONTAINER_PREFIX: staging + HOST: area51.mifi.dev + ROUTE_PREFIX: /auth + PORT: 9001 + commands: + - docker compose -f docker-compose.staging.yml pull + - docker compose -f docker-compose.staging.yml build --no-cache + - docker compose -f docker-compose.staging.yml rm --stop + - docker compose -f docker-compose.staging.yml up --wait + volumes: + - name: env-secrets + path: /drone/grow/staging.env + - name: dockersock + path: /var/run/docker.sock + - name: dockerconfig + path: /drone/grow/.docker/config.json +- name: Send Status Notifications + image: plugins/webhook + privileged: true + settings: + urls: https://lab.mifi.dev/hooks/ccw34hdf7tgbjmzp96nptn938r + content_type: application/json + template: | + { + "icon_url":"https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/198/freezing-face_1f976.png", + "text": "[{{ repo.name }} - Build # {{ build.number }}] Deploy {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", + "username":"DroneBot" + } + when: + status: + - success + - failure -# volumes: -# - name: dockerconfig -# host: -# path: /volume1/docker/dockerconfig.json -# - name: dockersock -# host: -# path: /var/run/docker.sock -# - name: env-secrets -# host: -# path: /volume1/docker/beethoven/labs-auth/staging.env +volumes: +- name: dockerconfig + host: + path: /volume1/docker/dockerconfig.json +- name: dockersock + host: + path: /var/run/docker.sock +- name: env-secrets + host: + path: /volume1/docker/beethoven/labs-auth/staging.env -# # depends_on: -# # - Test Pipeline +depends_on: + - Test Pipeline -# trigger: -# branch: -# - main -# event: -# - push -# # - tag +trigger: + # branch: + # - main + event: + # - push + - tag diff --git a/package.json b/package.json index d7759de..e9e3bb3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mifi/auth", - "version": "0.0.34", + "version": "0.0.35", "author": "mifi (Mike Fitzpatrick)", "license": "MIT", "scripts": {