Initial Bitbucket Pipelines configuration
This commit is contained in:
parent
2fd3a5c2b0
commit
ed31fef0d8
54
bitbucket-pipelines.yml
Normal file
54
bitbucket-pipelines.yml
Normal file
@ -0,0 +1,54 @@
|
||||
# Template docker-push
|
||||
|
||||
# This template allows you to build and push your docker image to a Docker Hub account.
|
||||
# The workflow allows running tests, code linting and security scans on feature branches (as well as master).
|
||||
# The docker image will be validated and pushed to the docker registry after the code is merged to master.
|
||||
|
||||
# Prerequisites: $DOCKERHUB_USERNAME, $DOCKERHUB_PASSWORD setup as deployment variables
|
||||
|
||||
image: atlassian/default-image:2
|
||||
|
||||
pipelines:
|
||||
default:
|
||||
- parallel:
|
||||
- step:
|
||||
name: Build and Test
|
||||
script:
|
||||
- IMAGE_NAME=$BITBUCKET_REPO_SLUG
|
||||
- docker build . --file Dockerfile --tag ${IMAGE_NAME}
|
||||
services:
|
||||
- docker
|
||||
caches:
|
||||
- docker
|
||||
- step:
|
||||
name: Lint the Dockerfile
|
||||
image: hadolint/hadolint:latest-debian
|
||||
script:
|
||||
- hadolint Dockerfile
|
||||
branches:
|
||||
master:
|
||||
- step:
|
||||
name: Build and Test
|
||||
script:
|
||||
- IMAGE_NAME=$BITBUCKET_REPO_SLUG
|
||||
- docker build . --file Dockerfile --tag ${IMAGE_NAME}
|
||||
- docker save ${IMAGE_NAME} --output "${IMAGE_NAME}.tar"
|
||||
services:
|
||||
- docker
|
||||
caches:
|
||||
- docker
|
||||
artifacts:
|
||||
- "*.tar"
|
||||
- step:
|
||||
name: Deploy to Production
|
||||
deployment: Production
|
||||
script:
|
||||
- echo ${DOCKERHUB_PASSWORD} | docker login --username "$DOCKERHUB_USERNAME" --password-stdin
|
||||
- IMAGE_NAME=$BITBUCKET_REPO_SLUG
|
||||
- docker load --input "${IMAGE_NAME}.tar"
|
||||
- VERSION="prod-0.1.${BITBUCKET_BUILD_NUMBER}"
|
||||
- IMAGE=${DOCKERHUB_NAMESPACE}/${IMAGE_NAME}
|
||||
- docker tag "${IMAGE_NAME}" "${IMAGE}:${VERSION}"
|
||||
- docker push "${IMAGE}:${VERSION}"
|
||||
services:
|
||||
- docker
|
Loading…
Reference in New Issue
Block a user