dockcross/.circleci/config.yml
Matt McCormick c96cbdc956
versioning: Set DEFAULT_DOCKCROSS_IMAGE based on the image tag
This ensures that the dockcross script will continue to use the specific
tagged version of the image that generates it.
2019-01-16 23:25:52 -05:00

668 lines
24 KiB
YAML

build-settings: &build-settings
machine: true
working_directory: ~/dockcross
version: 2
jobs:
base:
<<: *build-settings
steps:
- checkout
- run:
name: base build
command: |
docker pull debian:jessie
make base
mkdir -p ~/docker
docker save -o ~/docker/base.tar debian:jessie dockcross/base:latest
- run:
name: base test
command: |
make base.test
- save_cache:
key: base-assets-{{ .Revision }}
paths:
- ~/docker/base.tar
- ~/dockcross
android-arm:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: android-arm build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make android-arm
tagged=$(docker images -q -f 'since=dockcross/android-arm:latest' --format '{{.Repository}}:{{.Tag}}' | grep android-arm)
docker save -o ~/docker/android-arm.tar dockcross/android-arm:latest $tagged
- run:
name: android-arm test
command: |
make android-arm.test
- save_cache:
key: android-arm-assets-{{ .Revision }}
paths: ~/docker/android-arm.tar
android-arm64:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: android-arm64 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make android-arm64
tagged=$(docker images -q -f 'since=dockcross/android-arm64:latest' --format '{{.Repository}}:{{.Tag}}' | grep android-arm64)
docker save -o ~/docker/android-arm64.tar dockcross/android-arm64:latest $tagged
- run:
name: android-arm64 test
command: |
make android-arm64.test
- save_cache:
key: android-arm64-assets-{{ .Revision }}
paths: ~/docker/android-arm64.tar
browser-asmjs:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: browser-asmjs build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make browser-asmjs
tagged=$(docker images -q -f 'since=dockcross/browser-asmjs:latest' --format '{{.Repository}}:{{.Tag}}' | grep browser-asmjs)
docker save -o ~/docker/browser-asmjs.tar dockcross/browser-asmjs:latest $tagged
- run:
name: browser-asmjs test
command: |
make browser-asmjs.test
- save_cache:
key: browser-asmjs-assets-{{ .Revision }}
paths: ~/docker/browser-asmjs.tar
linux-arm64:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: linux-arm64 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make linux-arm64
tagged=$(docker images -q -f 'since=dockcross/linux-arm64:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-arm64)
docker save -o ~/docker/linux-arm64.tar dockcross/linux-arm64:latest $tagged
- run:
name: linux-arm64 test
command: |
make linux-arm64.test
- save_cache:
key: linux-arm64-assets-{{ .Revision }}
paths: ~/docker/linux-arm64.tar
linux-armv5:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: linux-armv5 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make linux-armv5
tagged=$(docker images -q -f 'since=dockcross/linux-armv5:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-armv5)
docker save -o ~/docker/linux-armv5.tar dockcross/linux-armv5:latest $tagged
- run:
name: linux-armv5 test
command: |
make linux-armv5.test
- save_cache:
key: linux-armv5-assets-{{ .Revision }}
paths: ~/docker/linux-armv5.tar
linux-armv6:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: linux-armv6 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make linux-armv6
tagged=$(docker images -q -f 'since=dockcross/linux-armv6:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-armv6)
docker save -o ~/docker/linux-armv6.tar dockcross/linux-armv6:latest $tagged
- run:
name: linux-armv6 test
command: |
make linux-armv6.test
- save_cache:
key: linux-armv6-assets-{{ .Revision }}
paths: ~/docker/linux-armv6.tar
linux-armv7:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: linux-armv7 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make linux-armv7
tagged=$(docker images -q -f 'since=dockcross/linux-armv7:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-armv7)
docker save -o ~/docker/linux-armv7.tar dockcross/linux-armv7:latest $tagged
- run:
name: linux-armv7 test
command: |
make linux-armv7.test
- save_cache:
key: linux-armv7-assets-{{ .Revision }}
paths: ~/docker/linux-armv7.tar
linux-mipsel:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
# Image build currently broken. See #209
#- run:
#name: linux-mipsel build
#no_output_timeout: 1.5h
#command: |
#docker load -i ~/docker/base.tar
#make linux-mipsel
#tagged=$(docker images -q -f 'since=dockcross/linux-mipsel:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-mipsel)
#docker save -o ~/docker/linux-mipsel.tar dockcross/linux-mipsel:latest $tagged
#- run:
#name: linux-mipsel test
#command: |
#make linux-mipsel.test
- save_cache:
key: linux-mipsel-assets-{{ .Revision }}
paths: ~/docker/linux-mipsel.tar
linux-s390x:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: linux-s390x build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make linux-s390x
tagged=$(docker images -q -f 'since=dockcross/linux-s390x:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-s390x)
docker save -o ~/docker/linux-s390x.tar dockcross/linux-s390x:latest $tagged
- run:
name: linux-s390x test
command: |
make linux-s390x.test
- save_cache:
key: linux-s390x-assets-{{ .Revision }}
paths: ~/docker/linux-s390x.tar
linux-ppc64le:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
# Image build currently broken. See #209
#- run:
#name: linux-ppc64le build
#no_output_timeout: 1.5h
#command: |
#docker load -i ~/docker/base.tar
#make linux-ppc64le
#tagged=$(docker images -q -f 'since=dockcross/linux-ppc64le:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-ppc64le)
#docker save -o ~/docker/linux-ppc64le.tar dockcross/linux-ppc64le:latest $tagged
#- run:
#name: linux-ppc64le test
#command: |
#make linux-ppc64le.test
- save_cache:
key: linux-ppc64le-assets-{{ .Revision }}
paths: ~/docker/linux-ppc64le.tar
linux-x64:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: linux-x64 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make linux-x64
tagged=$(docker images -q -f 'since=dockcross/linux-x64:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-x64)
docker save -o ~/docker/linux-x64.tar dockcross/linux-x64:latest $tagged
- run:
name: linux-x64 test
command: |
make linux-x64.test
- save_cache:
key: linux-x64-assets-{{ .Revision }}
paths: ~/docker/linux-x64.tar
linux-x86:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: linux-x86 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make linux-x86
tagged=$(docker images -q -f 'since=dockcross/linux-x86:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-x86)
docker save -o ~/docker/linux-x86.tar dockcross/linux-x86:latest $tagged
- run:
name: linux-x86 test
command: |
make linux-x86.test
- save_cache:
key: linux-x86-assets-{{ .Revision }}
paths: ~/docker/linux-x86.tar
manylinux-x64:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: manylinux-x64 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make manylinux-x64
tagged=$(docker images -q -f 'since=dockcross/manylinux-x64:latest' --format '{{.Repository}}:{{.Tag}}' | grep manylinux-x64)
docker save -o ~/docker/manylinux-x64.tar dockcross/manylinux-x64:latest $tagged
- run:
name: manylinux-x64 test
command: |
make manylinux-x64.test
- save_cache:
key: manylinux-x64-assets-{{ .Revision }}
paths: ~/docker/manylinux-x64.tar
manylinux-x86:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
name: manylinux-x86 build
no_output_timeout: 1.5h
command: |
docker load -i ~/docker/base.tar
make manylinux-x86
tagged=$(docker images -q -f 'since=dockcross/manylinux-x86:latest' --format '{{.Repository}}:{{.Tag}}' | grep manylinux-x86)
docker save -o ~/docker/manylinux-x86.tar dockcross/manylinux-x86:latest $tagged
- run:
name: manylinux-x86 test
command: |
make manylinux-x86.test
- save_cache:
key: manylinux-x86-assets-{{ .Revision }}
paths: ~/docker/manylinux-x86.tar
windows-x64:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
no_output_timeout: 1.5h
name: windows-x64 build
command: |
docker load -i ~/docker/base.tar
make windows-x64
tagged=$(docker images -q -f 'since=dockcross/windows-x64:latest' --format '{{.Repository}}:{{.Tag}}' | grep windows-x64)
docker save -o ~/docker/windows-x64.tar dockcross/windows-x64:latest $tagged
- run:
name: windows-x64 test
command: |
make windows-x64.test
- save_cache:
key: windows-x64-assets-{{ .Revision }}
paths: ~/docker/windows-x64.tar
windows-x64-posix:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
no_output_timeout: 1.5h
name: windows-x64-posix build
command: |
docker load -i ~/docker/base.tar
make windows-x64-posix
tagged=$(docker images -q -f 'since=dockcross/windows-x64-posix:latest' --format '{{.Repository}}:{{.Tag}}' | grep windows-x64-posix)
docker save -o ~/docker/windows-x64-posix.tar dockcross/windows-x64-posix:latest $tagged
- run:
name: windows-x64-posix test
command: |
make windows-x64-posix.test
- save_cache:
key: windows-x64-posix-assets-{{ .Revision }}
paths: ~/docker/windows-x64-posix.tar
windows-x86:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- run:
no_output_timeout: 1.5h
name: windows-x86 build
command: |
docker load -i ~/docker/base.tar
make windows-x86
tagged=$(docker images -q -f 'since=dockcross/windows-x86:latest' --format '{{.Repository}}:{{.Tag}}' | grep windows-x86)
docker save -o ~/docker/windows-x86.tar dockcross/windows-x86:latest
- run:
name: windows-x86 test
command: |
make windows-x86.test
- save_cache:
key: windows-x86-assets-{{ .Revision }}
paths: ~/docker/windows-x86.tar
deploy:
<<: *build-settings
steps:
- restore_cache:
key: base-assets-{{ .Revision }}
- deploy:
name: Deploy base
command: |
docker load -i ~/docker/base.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/base:latest
fi
- restore_cache:
key: android-arm-assets-{{ .Revision }}
- deploy:
name: Deploy android-arm
command: |
docker load -i ~/docker/android-arm.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/android-arm:latest
tagged=$(docker images -q -f 'since=dockcross/android-arm:latest' --format '{{.Repository}}:{{.Tag}}' | grep android-arm)
docker push $tagged
fi
- restore_cache:
key: android-arm64-assets-{{ .Revision }}
- deploy:
name: Deploy android-arm64
command: |
docker load -i ~/docker/android-arm64.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/android-arm64:latest
tagged=$(docker images -q -f 'since=dockcross/android-arm64:latest' --format '{{.Repository}}:{{.Tag}}' | grep android-arm64)
docker push $tagged
fi
- restore_cache:
key: browser-asmjs-assets-{{ .Revision }}
- deploy:
name: Deploy browser-asmjs
command: |
docker load -i ~/docker/browser-asmjs.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/browser-asmjs:latest
tagged=$(docker images -q -f 'since=dockcross/browser-asmjs:latest' --format '{{.Repository}}:{{.Tag}}' | grep browser-asmjs)
docker push $tagged
fi
- restore_cache:
key: linux-arm64-assets-{{ .Revision }}
- deploy:
name: Deploy linux-arm64
command: |
docker load -i ~/docker/linux-arm64.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/linux-arm64:latest
tagged=$(docker images -q -f 'since=dockcross/linux-arm64:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-arm64)
docker push $tagged
fi
- restore_cache:
key: linux-armv5-assets-{{ .Revision }}
- deploy:
name: Deploy linux-armv5
command: |
docker load -i ~/docker/linux-armv5.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/linux-armv5:latest
tagged=$(docker images -q -f 'since=dockcross/linux-armv5:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-armv5)
docker push $tagged
fi
- restore_cache:
key: linux-armv6-assets-{{ .Revision }}
- deploy:
name: Deploy linux-armv6
command: |
docker load -i ~/docker/linux-armv6.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/linux-armv6:latest
tagged=$(docker images -q -f 'since=dockcross/linux-armv6:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-armv6)
docker push $tagged
fi
- restore_cache:
key: linux-armv7-assets-{{ .Revision }}
- deploy:
name: Deploy linux-armv7
command: |
docker load -i ~/docker/linux-armv7.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/linux-armv7:latest
tagged=$(docker images -q -f 'since=dockcross/linux-armv7:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-armv7)
docker push $tagged
fi
# Image build currently broken. See #209
#- restore_cache:
#key: linux-mipsel-assets-{{ .Revision }}
#- deploy:
#name: Deploy linux-mipsel
#command: |
#docker load -i ~/docker/linux-mipsel.tar
#if [ "${CIRCLE_BRANCH}" == "master" ]; then
#docker login -u $DOCKER_USER -p $DOCKER_PASS
#docker push dockcross/linux-mipsel:latest
#tagged=$(docker images -q -f 'since=dockcross/linux-mipsel:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-mipsel)
#docker push $tagged
#fi
- restore_cache:
key: linux-s390x-assets-{{ .Revision }}
- deploy:
name: Deploy linux-s390x
command: |
docker load -i ~/docker/linux-s390x.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/linux-s390x:latest
tagged=$(docker images -q -f 'since=dockcross/linux-s390x:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-s390x)
docker push $tagged
fi
# Image build currently broken. See #209
#- restore_cache:
#key: linux-ppc64le-assets-{{ .Revision }}
#- deploy:
#name: Deploy linux-ppc64le
#command: |
#docker load -i ~/docker/linux-ppc64le.tar
#if [ "${CIRCLE_BRANCH}" == "master" ]; then
#docker login -u $DOCKER_USER -p $DOCKER_PASS
#docker push dockcross/linux-ppc64le:latest
#tagged=$(docker images -q -f 'since=dockcross/linux-ppc64le:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-ppc64le)
#docker push $tagged
#fi
- restore_cache:
key: linux-x64-assets-{{ .Revision }}
- deploy:
name: Deploy linux-x64
command: |
docker load -i ~/docker/linux-x64.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/linux-x64:latest
tagged=$(docker images -q -f 'since=dockcross/linux-x64:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-x64)
docker push $tagged
fi
- restore_cache:
key: linux-x86-assets-{{ .Revision }}
- deploy:
name: Deploy linux-x86
command: |
docker load -i ~/docker/linux-x86.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/linux-x86:latest
tagged=$(docker images -q -f 'since=dockcross/linux-x86:latest' --format '{{.Repository}}:{{.Tag}}' | grep linux-x86)
docker push $tagged
fi
- restore_cache:
key: manylinux-x64-assets-{{ .Revision }}
- deploy:
name: Deploy manylinux-x64
command: |
docker load -i ~/docker/manylinux-x64.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/manylinux-x64:latest
tagged=$(docker images -q -f 'since=dockcross/manylinux-x64:latest' --format '{{.Repository}}:{{.Tag}}' | grep manylinux-x64)
docker push $tagged
fi
- restore_cache:
key: manylinux-x86-assets-{{ .Revision }}
- deploy:
name: Deploy manylinux-x86
command: |
docker load -i ~/docker/manylinux-x86.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/manylinux-x86:latest
tagged=$(docker images -q -f 'since=dockcross/manylinux-x86:latest' --format '{{.Repository}}:{{.Tag}}' | grep manylinux-x86)
docker push $tagged
fi
- restore_cache:
key: windows-x64-assets-{{ .Revision }}
- deploy:
name: Deploy windows-x64
command: |
docker load -i ~/docker/windows-x64.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/windows-x64:latest
tagged=$(docker images -q -f 'since=dockcross/windows-x64:latest' --format '{{.Repository}}:{{.Tag}}' | grep windows-x64)
docker push $tagged
fi
- restore_cache:
key: windows-x64-posix-assets-{{ .Revision }}
- deploy:
name: Deploy windows-x64-posix
command: |
docker load -i ~/docker/windows-x64-posix.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/windows-x64-posix:latest
tagged=$(docker images -q -f 'since=dockcross/windows-x64-posix:latest' --format '{{.Repository}}:{{.Tag}}' | grep windows-x64-posix)
docker push $tagged
fi
- restore_cache:
key: windows-x86-assets-{{ .Revision }}
- deploy:
name: Deploy windows-x86
command: |
docker load -i ~/docker/windows-x86.tar
if [ "${CIRCLE_BRANCH}" == "master" ]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS
docker push dockcross/windows-x86:latest
tagged=$(docker images -q -f 'since=dockcross/windows-x86:latest' --format '{{.Repository}}:{{.Tag}}' | grep windows-x86)
docker push $tagged
fi
workflows:
version: 2
build-test-deploy:
jobs:
- base
- android-arm:
requires:
- base
- android-arm64:
requires:
- base
- browser-asmjs:
requires:
- base
- linux-arm64:
requires:
- base
- linux-armv5:
requires:
- base
- linux-armv6:
requires:
- base
- linux-armv7:
requires:
- base
# Image build currently broken. See #209
#- linux-mipsel:
#requires:
#- base
- linux-s390x:
requires:
- base
# Image build currently broken. See #209
#- linux-ppc64le:
#requires:
#- base
- linux-x64:
requires:
- base
- linux-x86:
requires:
- base
- manylinux-x64:
requires:
- base
- manylinux-x86:
requires:
- base
- windows-x64:
requires:
- base
- windows-x64-posix:
requires:
- base
- windows-x86:
requires:
- base
- deploy:
requires:
- base
- android-arm
- android-arm64
- browser-asmjs
- linux-arm64
- linux-armv5
- linux-armv6
- linux-armv7
#- linux-mipsel
- linux-s390x
# Image build currently broken. See #209
#- linux-ppc64le
- linux-x64
- linux-x86
- manylinux-x64
- manylinux-x86
- windows-x64
- windows-x64-posix
- windows-x86