|
|
- kind: pipeline
- name: default
- type: docker
- steps:
- # ============ RESTORE CACHE =============
- # - name: restore node_modules cache
- # image: appleboy/drone-sftp-cache
- # settings:
- # server:
- # from_secret: cache_server
- # port: 22
- # username:
- # from_secret: cache_server_user
- # key:
- # from_secret: cache_server_key
- # path: /var/cache/drone
- # restore: true
- # mount:
- # - node_modules
-
- # ============ BUILD STEPS ===============
- - name: build-prod
- image: glmdev/node-pnpm:latest
- commands:
- - pnpm i --silent
- - ./node_modules/.bin/ionic build --prod
- - ./node_modules/.bin/ngsw-config ./www/ ./ngsw-config.json /i
- - tar czf build.tar.gz www
-
- # =============== REBULD CACHE ==============
- # - name: rebuild node_modules cache
- # image: appleboy/drone-sftp-cache
- # settings:
- # server:
- # from_secret: cache_server
- # port: 22
- # username:
- # from_secret: cache_server_user
- # key:
- # from_secret: cache_server_key
- # path: /var/cache/drone
- # rebuild: true
- # mount:
- # - node_modules
-
- # =============== RELEASE ===============
- - name: release
- image: plugins/gitea-release
- settings:
- api_key:
- from_secret: gitea_api_key
- base_url: https://code.garrettmills.dev
- files: build.tar.gz
- title: ${DRONE_TAG}
- when:
- event: tag
-
- # =============== DEPLOY TO DEV SITE ===============
- - name: copy artifacts to staging site
- image: appleboy/drone-scp
- settings:
- host:
- from_secret: dev_site_host
- username:
- from_secret: dev_site_user
- key:
- from_secret: dev_site_key
- port: 22
- source: build.tar.gz
- target: /etc/glmdev/noded
- when:
- event: promote
- target: staging
- - name: deploy artifacts on staging site
- image: appleboy/drone-ssh
- settings:
- host:
- from_secret: dev_site_host
- username:
- from_secret: dev_site_user
- key:
- from_secret: dev_site_key
- port: 22
- script:
- - cd /etc/glmdev/noded
- - rm -rf www
- - tar xzf build.tar.gz
- - cd www
- - echo -n "$(uuidgen)" | sudo tee version.html
- when:
- event: promote
- target: staging
-
- # =============== DEPLOY TO PROD SITE ===============
- - name: copy artifacts to production site
- image: appleboy/drone-scp
- settings:
- host:
- from_secret: prod_site_host
- username:
- from_secret: prod_site_user
- key:
- from_secret: prod_site_key
- port: 22
- source: build.tar.gz
- target: /etc/glmdev/noded-prod
- when:
- event: promote
- target: production
- - name: deploy artifacts on production site
- image: appleboy/drone-ssh
- settings:
- host:
- from_secret: prod_site_host
- username:
- from_secret: prod_site_user
- key:
- from_secret: prod_site_key
- port: 22
- script:
- - cd /etc/glmdev/noded-prod
- - rm -rf www
- - tar xzf build.tar.gz
- - cd www
- - echo -n "$(uuidgen)" | sudo tee version.html
- when:
- event: promote
- target: production
-
- # =============== BUILD NOTIFICATIONS ===============
- - name: send build success notifications
- image: plugins/webhook
- settings:
- urls:
- from_secret: notify_webhook_url
- content_type: application/json
- template: |
- {
- "title": "Drone-CI [noded-frontend @ ${DRONE_BUILD_NUMBER}]",
- "message": "Build completed successfully. (Changes by ${DRONE_COMMIT_AUTHOR})",
- "priority": 4
- }
- when:
- status: success
- event:
- exclude:
- - promote
- - name: send build error notifications
- image: plugins/webhook
- settings:
- urls:
- from_secret: notify_webhook_url
- content_type: application/json
- template: |
- {
- "title": "Drone-CI [noded-frontend @ ${DRONE_BUILD_NUMBER}]",
- "message": "Build failed! (Changes by ${DRONE_COMMIT_AUTHOR})",
- "priority": 6
- }
- when:
- status: failure
- event:
- exclude:
- - promote
-
- # =============== DEPLOY NOTIFICATIONS ===============
- - name: send deploy success notifications
- image: plugins/webhook
- settings:
- urls:
- from_secret: notify_webhook_url
- content_type: application/json
- template: |
- {
- "title": "Drone-Deploy [noded-frontend @ ${DRONE_BUILD_NUMBER} to ${DRONE_DEPLOY_TO}]",
- "message": "Deployment completed successfully. (Changes by ${DRONE_COMMIT_AUTHOR})",
- "priority": 4
- }
- when:
- status: success
- event:
- - promote
- - name: send deploy error notifications
- image: plugins/webhook
- settings:
- urls:
- from_secret: notify_webhook_url
- content_type: application/json
- template: |
- {
- "title": "Drone-Deploy [noded-frontend @ ${DRONE_BUILD_NUMBER} to ${DRONE_DEPLOY_TO}]",
- "message": "Deployment failed! (Changes by ${DRONE_COMMIT_AUTHOR})",
- "priority": 6
- }
- when:
- status: failure
- event:
- - promote
|