build-settings: &build-settings machine: true working_directory: ~/dockcross resource_class: large 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 docker save -o ~/docker/android-arm.tar dockcross/android-arm:latest - run: name: android-arm test command: | make android-arm.test - save_cache: key: android-arm-assets-{{ .Revision }} paths: ~/docker/android-arm.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 docker save -o ~/docker/browser-asmjs.tar dockcross/browser-asmjs:latest - 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 docker save -o ~/docker/linux-arm64.tar dockcross/linux-arm64:latest - 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 docker save -o ~/docker/linux-armv5.tar dockcross/linux-armv5:latest - 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 docker save -o ~/docker/linux-armv6.tar dockcross/linux-armv6:latest - 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 docker save -o ~/docker/linux-armv7.tar dockcross/linux-armv7:latest - 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 }} - run: name: linux-mipsel build no_output_timeout: 1.5h command: | docker load -i ~/docker/base.tar make linux-mipsel docker save -o ~/docker/linux-mipsel.tar dockcross/linux-mipsel:latest - 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 docker save -o ~/docker/linux-s390x.tar dockcross/linux-s390x:latest - 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 }} - run: name: linux-ppc64le build no_output_timeout: 1.5h command: | docker load -i ~/docker/base.tar make linux-ppc64le docker save -o ~/docker/linux-ppc64le.tar dockcross/linux-ppc64le:latest - 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 docker save -o ~/docker/linux-x64.tar dockcross/linux-x64:latest - 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 docker save -o ~/docker/linux-x86.tar dockcross/linux-x86:latest - 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 docker save -o ~/docker/manylinux-x64.tar dockcross/manylinux-x64:latest - 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 docker save -o ~/docker/manylinux-x86.tar dockcross/manylinux-x86:latest - 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 docker save -o ~/docker/windows-x64.tar dockcross/windows-x64:latest - run: name: windows-x64 test command: | make windows-x64.test - save_cache: key: windows-x64-assets-{{ .Revision }} paths: ~/docker/windows-x64.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 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 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 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 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 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 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 fi - 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 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 fi - 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 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 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 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 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 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 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 fi workflows: version: 2 build-test-deploy: jobs: - base - android-arm: requires: - base - browser-asmjs: requires: - base - linux-arm64: requires: - base - linux-armv5: requires: - base - linux-armv6: requires: - base - linux-armv7: requires: - base - linux-mipsel: requires: - base - linux-s390x: requires: - base - 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-x86: requires: - base - deploy: requires: - base - android-arm - browser-asmjs - linux-arm64 - linux-armv5 - linux-armv6 - linux-armv7 - linux-mipsel - linux-s390x - linux-ppc64le - linux-x64 - linux-x86 - manylinux-x64 - manylinux-x86 - windows-x64 - windows-x86