--- resource_types: - name: helm type: docker-image source: repository: linkyard/concourse-helm-resource - name: matrix-notification-resource type: docker-image source: repository: nexus.nulloctet.com:5000/sothr/matrix-notification-resource username: ((nexus_docker_read.username)) password: ((nexus_docker_read.password)) resources: - name: git-develop type: git icon: git source: uri: ssh://git@git.nulloctet.com:8437/warricksothr/baphomet-js.git private_key: | ((pull_key)) branch: develop ignore_paths: - scripts/upload_pipeline.sh - README.md - CONTRIBUTING.md - LICENSE.md - name: git-master type: git icon: git source: uri: ssh://git@git.nulloctet.com:8437/warricksothr/baphomet-js.git private_key: | ((pull_key)) branch: master ignore_paths: - scripts/upload_pipeline.sh - README.md - CONTRIBUTING.md - LICENSE.md - name: docker-image type: docker-image icon: docker source: repository: ((nexus_docker_write.host))/nulloctet/baphomet-js username: ((nexus_docker_write.username)) password: ((nexus_docker_write.password)) - name: helm type: helm source: cluster_url: ((helm.cluster_url)) cluster_ca: ((helm.cluster_ca)) token: ((helm.token)) - name: matrix-notification type: matrix-notification-resource source: matrix_server_url: (( matrix.url )) token: (( matrix.token )) room_id: (( matrix.room_id )) jobs: # Development Pipeline - name: test-develop plan: - get: git-develop trigger: true - task: run-tests config: platform: linux image_resource: type: registry-image source: { repository: node, tag: "12.14-stretch" } inputs: - name: git-develop run: path: /bin/sh args: - -c - | echo "Node Version: $(node --version)" echo "NPM Version: $(npm --version)" cd git-develop npm install npm test on_failure: do: - put: matrix-notification params: msgtype: m.notice text: | A test of baphomet-js-dev has failed. Check it out at: https://concourse.nulloctet.com/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME or at: https://concourse.nulloctet.com/builds/$BUILD_ID - name: deploy-develop-image plan: - get: git-develop passed: [test-develop] trigger: true - task: capture-version config: platform: linux image_resource: type: registry-image source: { repository: bitnami/git, tag: "2-debian-9" } inputs: - name: git-develop outputs: - name: version run: path: /bin/sh args: - -c - | cd git-develop chmod +x ././scripts/get_*.sh echo $(./scripts/get_build.sh) > ../version/build.info echo $(./scripts/get_version.sh) > ../version/version.info echo $(./scripts/get_tag.sh) > ../version/tag.info echo "dev" > ../version/tag echo "Build Information: $(cat ../version/build.info)" echo "Version Information: $(cat ../version/version.info)" echo "Tag Information: $(cat ../version/tag.info)" echo "Docker Image Tag: $(cat ../version/tag)" - task: package config: platform: linux image_resource: type: registry-image source: { repository: debian, tag: "stretch-slim" } inputs: - name: git-develop - name: version outputs: - name: package run: path: /bin/sh args: - -c - | cd package cp ../version/* . cp ../git-develop/package*.json . cp ../git-develop/tsconfig.json . cp ../git-develop/index.js . cp -r ../git-develop/assets . cp -r ../git-develop/src . cp -r ../git-develop/data . cp ../git-develop/entrypoint.sh . cp ../git-develop/Dockerfile . cp ../git-develop/README.md . cp ../git-develop/LICENSE.md . ls -al . - put: docker-image params: build: package tag_file: package/tag tag_as_latest: false - put: matrix-notification params: msgtype: m.notice text: | Successfully deployed baphomet-js-dev image to repository - name: deploy-develop-helm plan: - get: git-develop passed: [deploy-develop-image] trigger: true - put: helm params: chart: git-develop/.helm values: git-develop/.helm/values.yaml release: baphomet-js-dev override_values: - key: image.tag value: dev - key: image.pullPolicy value: Always - key: app.env.node_env value: development - key: persistence.storageClass value: microk8s-hostpath recreate_pods: true # Release Pipeline - name: test-release plan: - get: git-master trigger: true - task: run-tests config: platform: linux image_resource: type: registry-image source: { repository: node, tag: "12.14-stretch" } inputs: - name: git-master run: path: /bin/sh args: - -c - | echo "Node Version: $(node --version)" echo "NPM Version: $(npm --version)" cd git-master npm install npm test on_failure: do: - put: matrix-notification params: msgtype: m.notice text: | A test of baphomet-js has failed. Check it out at: https://concourse.nulloctet.com/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME or at: https://concourse.nulloctet.com/builds/$BUILD_ID - name: deploy-release-image plan: - get: git-master passed: [test-release] trigger: true - task: capture-version config: platform: linux image_resource: type: registry-image source: { repository: bitnami/git, tag: "2-debian-9" } inputs: - name: git-master outputs: - name: version run: path: /bin/sh args: - -c - | cd git-master chmod +x ././scripts/get_*.sh echo $(./scripts/get_build.sh) > ../version/build.info echo $(./scripts/get_version.sh) > ../version/version.info echo $(./scripts/get_tag.sh) > ../version/tag.info cp ../version/tag.info ../version/tag echo "Build Information: $(cat ../version/build.info)" echo "Version Information: $(cat ../version/version.info)" echo "Tag Information: $(cat ../version/tag.info)" echo "Docker Image Tag: $(cat ../version/tag)" - task: package config: platform: linux image_resource: type: registry-image source: { repository: debian, tag: "stretch-slim" } inputs: - name: git-master - name: version outputs: - name: package run: path: /bin/sh args: - -c - | cd package cp ../version/* . cp ../git-master/package*.json . cp ../git-master/tsconfig.json . cp ../git-master/index.js . cp -r ../git-master/assets . cp -r ../git-master/src . cp -r ../git-master/data . cp ../git-master/entrypoint.sh . cp ../git-master/Dockerfile . cp ../git-master/README.md . cp ../git-master/LICENSE.md . ls -al . - put: docker-image params: build: package tag_file: package/tag tag_as_latest: true