kind: pipeline name: default steps: # ============ BUILD STEPS =============== - name: build-prod image: node:14 commands: - npm i - npm install @ionic/cli - ./node_modules/.bin/ionic build --prod - ./node_modules/.bin/ngsw-config ./www/ ./ngsw-config.json /i - tar czf build.tar.gz www # =============== 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 - sed -i 's///' index.html - sed -i 's/Ionic App/Noded/' index.html - 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 - sed -i 's///' index.html - sed -i 's/Ionic App/Noded/' index.html - echo -n "$(uuidgen)" | sudo tee version.html when: event: promote target: production # =============== NOTIFICATIONS =============== - name: send success notifications image: plugins/webhook settings: urls: from_secret: notify_webhook_url content_type: application/json template: | { "title": "Drone-CI [noded-frontend]", "message": "Build ${DRONE_BUILD_NUMBER} completed successfully.", "priority": 4 } when: status: success - name: send error notifications image: plugins/webhook settings: urls: from_secret: notify_webhook_url content_type: application/json template: | { "title": "Drone-CI [noded-frontend]", "message": "Build ${DRONE_BUILD_NUMBER} failed!", "priority": 6 } when: status: failure