docker-atlassian-confluence.../bitbucket-pipelines.yml.j2
Eugene Ivantsov 2601be3f18 Merged in exclude-9-0-0 (pull request #172)
Temporarily exclude 9.0.0

* Skip 9.0.0

* Use 8.9.4 for branches and PR builds

* Update snyk ignore

* Override test version

* Update .snyk


Approved-by: Adam Brokes
2024-07-22 22:03:01 +00:00

211 lines
9.1 KiB
Django/Jinja

---
# NOTE: This file is generated from `bitbucket-pipelines.yml.j2` via `pipelines-generator.py`:
#
# python3 pipelines-generator.py > bitbucket-pipelines.yml
image: docker-public.packages.atlassian.com/atlassian/docker-release-maker:latest
definitions:
services:
docker:
memory: 3072
options:
size: 1x
pipelines:
branches:
######################################################################
# Master branch: Do full release for each image flavour
######################################################################
master:
- step:
name: Check if pipelines config is up-to-date...
script:
- python3 pipelines-generator.py > bitbucket-piplines.yml.expected && diff bitbucket-pipelines.yml bitbucket-piplines.yml.expected
- parallel:
{% for (name, pdata) in images.items() %}
{% for (jdkver, appdata) in pdata.items() %}
{% for offset in range(0, batches) %}
- step:
name: JDK {{ jdkver }} - Batch {{ offset + 1 }}
services:
- docker
script:
- git submodule update --init --recursive
- for i in {1..3}; do echo ${DOCKER_BOT_PASSWORD} | docker login ${DOCKER_REGISTRY} --username ${DOCKER_BOT_USERNAME} --password-stdin && break || sleep 5; done; if [ $? -ne 0 ]; then echo "Failed to login to container registry after 3 attempts" && exit 1; fi
- docker buildx create --name container --driver docker-container --use
- docker buildx ls
- >
python /usr/src/app/make-releases.py \
--update \
--start-version='{{ appdata.start_version }}' \
{% if appdata.end_version|length %}
--end-version='{{ appdata.end_version }}' \
{% endif %}
{% if appdata.default_release %}
--default-release \
{% endif %}
{% if appdata.default_eap %}
--default-eap \
{% endif %}
--dockerfile='{{ appdata.dockerfile }}' \
--dockerfile-buildargs='BASE_IMAGE={{ appdata.base_image }}' \
--dockerfile-version-arg='CONFLUENCE_VERSION' \
--mac-product-key='confluence' \
--tag-suffixes='{{ appdata.tag_suffixes|join(',') }}' \
--concurrent-builds='1' \
--job-offset='{{ offset }}' \
--jobs-total='{{ batches }}' \
--docker-repos='{{ appdata.docker_repos|join(',') }}' \
--push \
--platforms=linux/amd64,linux/arm64 \
--skip-versions=9.0.0
{% endfor %}
{% endfor %}
{% endfor %}
######################################################################
# All other branches & PRs; run unit tests & functional tests
# against latest app version
######################################################################
'**':
- step:
name: Check if pipelines config is up-to-date...
script:
- python3 pipelines-generator.py > bitbucket-piplines.yml.expected && diff bitbucket-pipelines.yml bitbucket-piplines.yml.expected
- parallel:
- step:
name: Run unit tests
image: python:3.7-alpine3.9
services:
- docker
script:
- apk add --no-cache git
- git submodule update --init --recursive
- pip install -q -r shared-components/tests/requirements.txt
- export PYTHONPATH=./shared-components/tests:$PYTHONPATH
- export DOCKERFILE='Dockerfile'
- export DOCKERFILE_VERSION_ARG='CONFLUENCE_VERSION'
- export MAC_PRODUCT_KEY='confluence'
- export APP_TEST_VERSION='8.9.4' # remove it after 9.0.0 is out
- py.test -v tests/
- py.test -v shared-components/tests/
- step:
name: Run unit tests - UBI
image: python:3.7-alpine3.9
services:
- docker
script:
- apk add --no-cache git
- git submodule update --init --recursive
- pip install -q -r shared-components/tests/requirements.txt
- export PYTHONPATH=./shared-components/tests:$PYTHONPATH
- export DOCKERFILE='Dockerfile.ubi'
- export DOCKERFILE_VERSION_ARG='CONFLUENCE_VERSION'
- export MAC_PRODUCT_KEY='confluence'
- export APP_TEST_VERSION='8.9.4' # remove it after 9.0.0 is out
- py.test -v tests/
- step:
name: Run integration tests
services:
- docker
script:
- apk add --no-cache git docker-compose jq curl
- git submodule update --init --recursive
- export CONFLUENCE_VERSION=`curl -s https://marketplace.atlassian.com/rest/2/products/key/confluence/versions | jq -r '._embedded.versions | .[0].name'`
- export CONFLUENCE_VERSION="8.9.4" # remove it after 9.0.0 is out
- docker build --build-arg CONFLUENCE_VERSION=${CONFLUENCE_VERSION} -t test-image .
- export IS_RELEASE=false
- /usr/src/app/post_build.sh test-image $IS_RELEASE
- step:
name: Run integration tests - UBI
services:
- docker
script:
- apk add --no-cache git docker-compose jq curl
- git submodule update --init --recursive
- export CONFLUENCE_VERSION=`curl -s https://marketplace.atlassian.com/rest/2/products/key/confluence/versions | jq -r '._embedded.versions | .[0].name'`
- export CONFLUENCE_VERSION="8.9.4" # remove it after 9.0.0 is out
- docker build --build-arg CONFLUENCE_VERSION=${CONFLUENCE_VERSION} -t test-image-ubi . -f Dockerfile.ubi
- export IS_RELEASE=false
- /usr/src/app/post_build.sh test-image-ubi $IS_RELEASE
custom:
######################################################################
# Custom: Find and build new releases
######################################################################
new-releases:
- parallel:
{% for (name, pdata) in images.items() %}
{% for (jdkver, appdata) in pdata.items() %}
{% for offset in range(0, 1) %}
- step:
name: JDK {{ jdkver }} - Batch {{ offset + 1 }}
services:
- docker
script:
- git submodule update --init --recursive
- for i in {1..3}; do echo ${DOCKER_BOT_PASSWORD} | docker login ${DOCKER_REGISTRY} --username ${DOCKER_BOT_USERNAME} --password-stdin && break || sleep 5; done; if [ $? -ne 0 ]; then echo "Failed to login to container registry after 3 attempts" && exit 1; fi
- docker buildx create --name container --driver docker-container --use
- docker buildx ls
- >
python /usr/src/app/make-releases.py \
--create \
--create-eap \
--start-version='{{ appdata.start_version }}' \
{% if appdata.end_version|length %}
--end-version='{{ appdata.end_version }}' \
{% endif %}
{% if appdata.default_release %}
--default-release \
{% endif %}
{% if appdata.default_eap %}
--default-eap \
{% endif %}
--dockerfile='{{ appdata.dockerfile }}' \
--dockerfile-buildargs='BASE_IMAGE={{ appdata.base_image }}' \
--dockerfile-version-arg='CONFLUENCE_VERSION' \
--mac-product-key='confluence' \
--tag-suffixes='{{ appdata.tag_suffixes|join(',') }}' \
--concurrent-builds='1' \
--job-offset='{{ offset }}' \
--jobs-total='1' \
--docker-repos='{{ appdata.docker_repos|join(',') }}' \
--push \
--platforms=linux/amd64,linux/arm64 \
--skip-versions=9.0.0
{% endfor %}
{% endfor %}
{% endfor %}
custom-release:
- variables:
- name: CONFLUENCE_VERSION
- name: DOCKER_TAG
- step:
services:
- docker
script:
- git submodule update --init --recursive
- for i in {1..3}; do echo ${DOCKER_BOT_PASSWORD} | docker login ${DOCKER_REGISTRY} --username ${DOCKER_BOT_USERNAME} --password-stdin && break || sleep 5; done; if [ $? -ne 0 ]; then echo "Failed to login to container registry after 3 attempts" && exit 1; fi
- >
docker build -t ${DOCKER_REGISTRY}/atlassian/confluence:${DOCKER_TAG}
--build-arg CONFLUENCE_VERSION=${CONFLUENCE_VERSION} .
- snyk auth $SNYK_TOKEN
- snyk container test ${DOCKER_REGISTRY}/atlassian/confluence:${DOCKER_TAG} --severity-threshold=high
- docker push ${DOCKER_REGISTRY}/atlassian/confluence:${DOCKER_TAG}