|
19 | 19 | cpu: 4 |
20 | 20 | memory: 4G |
21 | 21 |
|
22 | | - script: |
23 | | - - docker build -t joseluisq/rust-linux-darwin-builder:latest -f Dockerfile . |
24 | | - - docker run --rm -v $PWD:/root/src joseluisq/rust-linux-darwin-builder:latest bash -c 'set -eu; make test-ci' |
| 22 | + build_script: make build |
| 23 | + run_script: make test |
| 24 | + |
| 25 | +task: |
| 26 | + only_if: $CIRRUS_TAG != '' |
| 27 | + alias: build-linux-image |
| 28 | + timeout_in: 120m |
| 29 | + env: |
| 30 | + DOCKER_USERNAME: ENCRYPTED[db65fd6fc1af68040964a27c82f2cbd202c849199038cfddc961a573d803a4f2793ba30eede0b6bcdb6bbf29f5c4f012] |
| 31 | + DOCKER_PASSWORD: ENCRYPTED[c201154ee561b3ca486047160db1c2ae77f766abf880feb5f57a10201374ba661ec7a796928ca8eb3a92aa007c684c37] |
| 32 | + matrix: |
| 33 | + - name: linux-amd64 |
| 34 | + env: |
| 35 | + CIRRUS_ARCH: amd64 |
| 36 | + compute_engine_instance: |
| 37 | + image_project: cirrus-images |
| 38 | + image: family/docker-builder |
| 39 | + platform: linux |
| 40 | + cpu: 8 |
| 41 | + memory: 8G |
| 42 | + |
| 43 | + - name: linux-arm64 |
| 44 | + env: |
| 45 | + CIRRUS_ARCH: arm64 |
| 46 | + compute_engine_instance: |
| 47 | + image_project: cirrus-images |
| 48 | + image: family/docker-builder-arm64 |
| 49 | + architecture: arm64 |
| 50 | + platform: linux |
| 51 | + cpu: 4 |
| 52 | + memory: 4G |
| 53 | + |
| 54 | + build_script: TAG=$CIRRUS_ARCH make build |
| 55 | + login_script: docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD |
| 56 | + push_script: docker push joseluisq/rust-linux-darwin-builder:$CIRRUS_ARCH |
| 57 | + |
| 58 | +release_docker_builder: |
| 59 | + only_if: $CIRRUS_TAG != '' |
| 60 | + depends_on: |
| 61 | + - build-linux-image |
| 62 | + env: |
| 63 | + DOCKER_USERNAME: ENCRYPTED[db65fd6fc1af68040964a27c82f2cbd202c849199038cfddc961a573d803a4f2793ba30eede0b6bcdb6bbf29f5c4f012] |
| 64 | + DOCKER_PASSWORD: ENCRYPTED[c201154ee561b3ca486047160db1c2ae77f766abf880feb5f57a10201374ba661ec7a796928ca8eb3a92aa007c684c37] |
| 65 | + login_script: docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD |
| 66 | + manifests_script: | |
| 67 | + docker manifest create \ |
| 68 | + joseluisq/rust-linux-darwin-builder:latest \ |
| 69 | + --amend joseluisq/rust-linux-darwin-builder:amd64 \ |
| 70 | + --amend joseluisq/rust-linux-darwin-builder:arm64 |
| 71 | + push_manifest_script: docker manifest push joseluisq/rust-linux-darwin-builder:latest |
| 72 | + push_aliases_script: | |
| 73 | + SEMVER=${CIRRUS_TAG##*v} |
| 74 | + SEMVER_MAJOR=${SEMVER%.*.*} |
| 75 | + SEMVER_MINOR=${SEMVER%.*} |
| 76 | + docker tag joseluisq/rust-linux-darwin-builder:latest joseluisq/rust-linux-darwin-builder:${SEMVER} |
| 77 | + docker tag joseluisq/rust-linux-darwin-builder:${SEMVER} joseluisq/rust-linux-darwin-builder:${SEMVER_MAJOR} |
| 78 | + docker tag joseluisq/rust-linux-darwin-builder:${SEMVER} joseluisq/rust-linux-darwin-builder:${SEMVER_MINOR} |
| 79 | + docker push joseluisq/rust-linux-darwin-builder:${SEMVER} |
| 80 | + docker push joseluisq/rust-linux-darwin-builder:${SEMVER_MAJOR} |
| 81 | + docker push joseluisq/rust-linux-darwin-builder:${SEMVER_MINOR} |
0 commit comments