kind: pipeline type: kubernetes name: back-end # This pipeline tests the back-end using the integration tests. trigger: event: [ push, pull_request ] workspace: path: /drone/src steps: - name: install dependencies image: sandervocke/postgres_node:12 commands: - npm install - cd /drone/src/server && npm install - name: back-end test (SQLite3) image: sandervocke/postgres_node:12 commands: - cd /drone/src/server && ./test/test.sh --sqlite - name: back-end test (PostgreSQL) image: sandervocke/postgres_node:12 commands: - cd /drone/src/server && ./test/test.sh --postgres --start-postgres-testcontainer --- kind: pipeline type: kubernetes name: front-end # This pipeline tests the front-end by running it through a TypeScript compiler. trigger: event: [ push, pull_request ] workspace: path: /drone/src steps: - name: install dependencies image: node commands: - cd /drone/src && npm install - cd /drone/src/client && npm install - name: front-end compile image: node commands: - cd /drone/src/client && ./node_modules/.bin/tsc; cd .. --- kind: pipeline type: kubernetes name: dockerhub # This pipeline builds the docker container and publishes it # to DockerHub. The promotion target is "dockerhub". trigger: event: [ promote ] steps: - name: prepare image: alpine/git commands: - "echo \"dev-$(git rev-parse HEAD),latest\" > .tags" - name: publish image: plugins/docker settings: repo: sandervocke/mudbase username: from_secret: docker_username password: from_secret: docker_password dockerfile: deploy/Dockerfile