# 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 # event: # # - pull_request # - push # --- 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: 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 commands: - docker login --username $REG_USER --password $REG_PASS git.mifi.dev - '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 secrets: - source: registry_username target: REG_USER - source: registry_password] target: REG_PASS 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 username: from_secret: registry_username password: from_secret: registry_password ssh-agent-key: from_secret: gitea_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: branch: - main event: - push # - tag --- kind: pipeline type: docker name: Deploy Pipeline 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 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: - main event: - push # - tag