kind: pipeline type: kubernetes name: default steps: - name: Test image: node:lts environment: FORMAT: cobertura REPORT_FILE: coverage/cobertura-coverage.xml HOST_DIR: /dist VERBOSE: "true" COV_TOKEN: from_secret: token commands: - mkdir -p $HOST_DIR && chown $USER:$USER $HOST_DIR - yarn install --immutable --immutable-cache --check-cache - yarn run lint - yarn run test:coverage - curl --proto '=https' --tlsv1.2 -sSf https://cov.submelon.dev/sh | sh - name: Build cache image: plugins/docker settings: repo: "${DRONE_REPO}" tags: - cache cache_from: "${DRONE_REPO}:cache" target: dependencies username: from_secret: docker_username password: from_secret: docker_password when: event: exclude: - pull_request - name: Publish (no tag) image: plugins/docker settings: repo: "${DRONE_REPO}" tags: - "${DRONE_COMMIT_SHA}" - latest cache_from: "${DRONE_REPO}:cache" target: release username: from_secret: docker_username password: from_secret: docker_password when: event: exclude: - tag - pull_request - name: Publish (with tag) image: plugins/docker settings: repo: "${DRONE_REPO}" tags: - "${DRONE_COMMIT_SHA}" - "${DRONE_TAG##v}" - latest cache_from: "${DRONE_REPO}:cache" target: release username: from_secret: docker_username password: from_secret: docker_password when: event: include: - tag exclude: - pull_request - name: Deploy image: kjhoerr/drone-kubectl:latest settings: kubernetes_server: from_secret: kube_server kubernetes_token: from_secret: kube_token kubernetes_cert: from_secret: kube_cert commands: - echo "$(awk '{gsub("'"${DRONE_REPO}"':latest","'"${DRONE_REPO}:${DRONE_COMMIT_SHA}"'")}1' .kubernetes/deployment.yaml)" > .kubernetes/deployment.yaml - kubectl apply -f .kubernetes when: event: exclude: - pull_request trigger: branch: - trunk event: - pull_request - push - custom - tag