diff --git a/.drone.yml b/.drone.yml index 07842a9..0c9f141 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,17 +1,308 @@ +# kind: pipeline +# type: docker +# name: Test Pipeline + +# workspace: +# path: /drone/looking + +# steps: +# - name: yarn install +# image: node:20-bullseye-slim +# environment: +# YARN_VERSION: 3.5.0 +# commands: +# - yarn set version stable +# - yarn install +# volumes: +# - name: yarnrc +# path: /drone/auth/.yarnrc.yml +# - 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:production +# - 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 + +# volumes: +# - name: yarnrc +# host: +# path: /volume1/docker/.yarnrc.yml + +# trigger: +# branch: +# - master +# - develop +# event: +# - pull_request + +# --- +# kind: pipeline +# type: docker +# name: Publish Pipeline + +# workspace: +# path: /drone/auth + +# steps: +# - name: Build Package +# image: node:20-bullseye-slim +# environment: +# YARN_VERSION: 3.5.0 +# commands: +# - yarn set version stable +# - yarn install +# - yarn build:package +# volumes: +# - name: yarnrc +# path: /drone/auth/.yarnrc.yml +# - name: Publish NPM +# image: node:20-bullseye-slim +# commands: +# - yarn npm publish +# volumes: +# - name: npmrc +# path: /drone/auth/.npmrc +# - name: yarnrc +# path: /drone/auth/.yarnrc.yml +# - 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 + +# --- kind: pipeline type: docker -name: Deploy to miCloud +name: Publish Pipeline + +workspace: + path: /drone/looking steps: -- name: deploy-dev - image: node:latest - commands: - - npm install -g forever - - npm install - - forever start bin/www +- name: Publish Image + image: plugins/docker + settings: + auto_tag: true + repo: git.mifi.dev/mifi/Pfosi-Looking-API + registry: git.mifi.dev + build_args: + - MONGO_ENTRY_FILE=latest + - MONGO_VERSION=latest + - NPM_TOKEN: + from_secret: reg_token + 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: + 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 docker image release {{tag}} from # {{ 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: npmrc +# host: +# path: /volume1/docker/beethoven/labs-pfosi-looking-api/.npmrc +# - name: yarnrc +# host: +# path: /volume1/docker/.yarnrc.yml + +# depends_on: +# - Test Pipeline trigger: - branch: - - master event: - - push + - tag + +# --- +# kind: pipeline +# type: docker +# name: Staging Deploy Pipeline + +# workspace: +# path: /drone/auth + +# 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-build.yml build --pull --no-cache +# - docker compose -f docker-compose.staging-build.yml up --remove-orphans --force-recreate --wait +# volumes: +# - name: env-secrets +# path: /drone/auth/staging.env +# - name: dockersock +# path: /var/run/docker.sock +# - name: dockerconfig +# path: /drone/auth/.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 }}] Staging 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 + +# depends_on: +# - Test Pipeline + +# trigger: +# branch: +# - develop +# event: +# - push + +--- +kind: pipeline +type: docker +name: Production Deploy Pipeline + +workspace: + path: /drone/looking + +clone: + disable: true + +steps: +- name: Deploy Container + image: plugins/webhook + settings: + # urls: https://portainer.mifi.dev/api/stacks/webhooks/968d2244-2548-4f0b-8c18-bbc9bc35305d +- 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 }}] Production Deploy {{ build.status }} {{#success build.status}}:tada:{{else}}:poop:{{/success}}", + "username":"DroneBot" + } + when: + status: + - success + - failure + +depends_on: + - Publish Pipeline + +trigger: + event: + - promote + target: + - production + +# kind: pipeline +# type: docker +# name: Deploy to miCloud + +# steps: +# - name: deploy-dev +# image: node:latest +# commands: +# - npm install -g forever +# - npm install +# - forever start bin/www + +# trigger: +# branch: +# - master +# event: +# - push