kind: pipeline type: docker name: Test Pipeline 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 trigger: branch: - main - develop event: - pull_request --- kind: pipeline type: docker name: Publish Pipeline 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: 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: 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-auth/.npmrc depends_on: - Test Pipeline trigger: event: - tag --- kind: pipeline type: docker name: Deploy Pipeline workspace: path: /drone/grow clone: disable: true 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_image.yml pull - docker compose -f docker-compose.staging_image.yml build --no-cache - docker compose -f docker-compose.staging_image.yml rm --stop - docker compose -f docker-compose.staging_image.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 depends_on: - Test Pipeline trigger: event: - promote target: - production