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 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 docker save -o ~/docker/android-arm64.tar dockcross/android-arm64:latest - 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 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 }} # Image build currently broken. See #209 #- 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 }} # Image build currently broken. See #209 #- 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 }} # Image build currently broken. See #209 #- 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 }} # 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 #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 }} # 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 #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: 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 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 # Image build currently broken. See #209 #- 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 # Image build currently broken. See #209 #- 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 # Image build currently broken. See #209 #- 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 # 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 #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 # 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 #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 - android-arm64: requires: - base - browser-asmjs: requires: - base # Image build currently broken. See #209 #- linux-arm64: #requires: #- base # Image build currently broken. See #209 #- linux-armv5: #requires: #- base - linux-armv6: requires: - base # Image build currently broken. See #209 #- 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-x86: requires: - base - deploy: requires: - base - android-arm - android-arm64 - browser-asmjs # Image build currently broken. See #209 #- linux-arm64 #- linux-armv5 - linux-armv6 # Image build currently broken. See #209 #- 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-x86