mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-27 01:15:08 +00:00
424 lines
18 KiB
YAML
424 lines
18 KiB
YAML
sudo: required
|
|
|
|
dist: bionic
|
|
|
|
language: python
|
|
|
|
python:
|
|
- "3.6"
|
|
|
|
services:
|
|
- docker
|
|
|
|
before_install:
|
|
# Install latest docker (https://www.docker.com/blog/multi-arch-build-what-about-travis)
|
|
- sudo rm -rf /var/lib/apt/lists/*
|
|
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
|
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) edge"
|
|
- sudo apt-get update
|
|
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
|
- mkdir -vp ~/.docker/cli-plugins/
|
|
- curl --silent -L "https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-amd64" > ~/.docker/cli-plugins/docker-buildx
|
|
- chmod a+x ~/.docker/cli-plugins/docker-buildx
|
|
- docker buildx create --use
|
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
|
- docker buildx inspect --bootstrap
|
|
|
|
- if [[ "$BUILD" != "development" ]]; then
|
|
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin;
|
|
sudo apt-get update && sudo apt-get -y install git;
|
|
fi
|
|
- if [[ $BUILD == "development" ]];then
|
|
sudo apt-get update && sudo apt-get -y install docker-compose;
|
|
fi
|
|
- chmod u+x ./travis.py
|
|
|
|
after_success:
|
|
- docker --version
|
|
|
|
jobs:
|
|
include:
|
|
- stage: "Build Frappe bench development environment (latest)"
|
|
if: branch = develop AND type != pull_request
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/bench:latest \
|
|
-f build/bench/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = develop AND type != pull_request
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:edge \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:develop \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:latest \
|
|
-f build/frappe-worker/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = develop AND type != pull_request
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:edge \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:develop \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:latest \
|
|
-f build/frappe-nginx/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = develop AND type != pull_request
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:edge \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:develop \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:latest \
|
|
-f build/frappe-socketio/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-13 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v13*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-13 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:v13 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:${VERSION} \
|
|
-f build/frappe-worker/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-13 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v13*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--build-arg GIT_BRANCH=version-13 \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:v13 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:${VERSION} \
|
|
-f build/frappe-nginx/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-13 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v13*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-13 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:v13 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:${VERSION} \
|
|
-f build/frappe-socketio/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-12 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v12*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-12 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:v12 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:${VERSION} \
|
|
-f build/frappe-worker/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-12 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v12*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-12 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:v12 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:${VERSION} \
|
|
-f build/frappe-nginx/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-12 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v12*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-12 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:v12 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:${VERSION} \
|
|
-f build/frappe-socketio/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-11 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v11*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-11 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:v11 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-worker:${VERSION} \
|
|
-f build/frappe-worker/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-11 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v11*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-11 \
|
|
--build-arg NODE_IMAGE_TAG=10-buster-slim \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:v11 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-nginx:${VERSION} \
|
|
-f build/frappe-nginx/Dockerfile .
|
|
- stage: "Build Frappe (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/frappe --branch version-11 && \
|
|
cd frappe && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v11*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-11 \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:v11 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/frappe-socketio:${VERSION} \
|
|
-f build/frappe-socketio/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = develop AND type != pull_request
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:edge \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:develop \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:latest \
|
|
-f build/erpnext-worker/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/erpnext --branch version-13 && \
|
|
cd erpnext && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v13*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-13 \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:v13 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:${VERSION} \
|
|
-f build/erpnext-worker/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/erpnext --branch version-12 && \
|
|
cd erpnext && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v12*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-12 \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:v12 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:${VERSION} \
|
|
-f build/erpnext-worker/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/erpnext --branch version-11 && \
|
|
cd erpnext && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v11*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-11 \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:v11 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-worker:${VERSION} \
|
|
-f build/erpnext-worker/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = develop AND type != pull_request
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:edge \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:develop \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:latest \
|
|
-f build/erpnext-nginx/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/erpnext --branch version-13 && \
|
|
cd erpnext && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v13*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-13 \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:v13 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:${VERSION} \
|
|
-f build/erpnext-nginx/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/erpnext --branch version-12 && \
|
|
cd erpnext && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v12*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-12 \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:v12 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:${VERSION} \
|
|
-f build/erpnext-nginx/Dockerfile .
|
|
- stage: "Build ERPNext (all versions)"
|
|
if: branch = master AND type != pull_request
|
|
script:
|
|
- |
|
|
git clone https://github.com/frappe/erpnext --branch version-11 && \
|
|
cd erpnext && \
|
|
git fetch --tags && \
|
|
export VERSION=$(git tag --list --sort=-version:refname "v11*" | sed -n 1p | sed -e 's#.*@\(\)#\1#') && \
|
|
cd ..
|
|
- |
|
|
docker buildx build \
|
|
--no-cache \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--build-arg GIT_BRANCH=version-11 \
|
|
--build-arg NODE_IMAGE_TAG=10-buster-slim \
|
|
--build-arg DOCKER_REGISTRY_PREFIX=${DOCKER_REGISTRY_PREFIX:=frappe} \
|
|
--push \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:v11 \
|
|
-t ${DOCKER_REGISTRY_PREFIX:=frappe}/erpnext-nginx:${VERSION} \
|
|
-f build/erpnext-nginx/Dockerfile .
|
|
- stage: "Build and test edge images"
|
|
if: type = pull_request
|
|
before_install:
|
|
- sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
|
- sudo chmod +x /usr/local/bin/docker-compose
|
|
- sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
|
|
- sudo apt-get update && sudo apt-get -y install w3m shellcheck
|
|
script:
|
|
- ./tests/check-format.sh
|
|
- docker build -t frappe/frappe-socketio:edge -f build/frappe-socketio/Dockerfile .
|
|
- docker build -t frappe/frappe-worker:develop -f build/frappe-worker/Dockerfile .
|
|
- docker build -t frappe/erpnext-worker:edge -f build/erpnext-worker/Dockerfile .
|
|
- docker build -t frappe/frappe-nginx:develop -f build/frappe-nginx/Dockerfile .
|
|
- docker build -t frappe/erpnext-nginx:edge -f build/erpnext-nginx/Dockerfile .
|
|
- ./tests/docker-test.sh
|
|
- stage: "Pull and test edge images"
|
|
if: branch = develop AND type != pull_request
|
|
before_install:
|
|
- sudo apt-get update && sudo apt-get -y install docker-compose w3m
|
|
script:
|
|
- ./tests/docker-test.sh
|
|
- stage: "Helm Chart Release"
|
|
if: branch = master AND type != pull_request
|
|
env:
|
|
- GIT_SSH_COMMAND="ssh -i ${TRAVIS_BUILD_DIR}/deploy_key"
|
|
before_install:
|
|
- openssl aes-256-cbc -K $encrypted_189e52c2c347_key -iv $encrypted_189e52c2c347_iv -in deploy_key.enc -out deploy_key -d;
|
|
chmod 400 deploy_key;
|
|
- ssh-keyscan github.com >> $HOME/.ssh/known_hosts 2>/dev/null;
|
|
install:
|
|
- pip install --upgrade pip
|
|
script:
|
|
- git clone git@github.com:frappe/helm.git && cd helm
|
|
- pip install -r release_wizard/requirements.txt
|
|
- ./release_wizard/wizard 13 patch --remote origin --ci
|