image: alpinelinux/docker-cli stages: - build - push - manifest - cleanup # Build jobs .build: stage: build only: changes: - Dockerfile.in - make_images.sh - entrypoint.sh build-v3.8: extends: .build script: - ./make_images.sh build v3.8 build-v3.9: extends: .build script: - ./make_images.sh build v3.9 build-v3.10: extends: .build script: - ./make_images.sh build v3.10 build-v.3.11: extends: .build script: - ./make_images.sh build v3.11 build-edge: extends: .build script: - ./make_images.sh build edge # Push jobs .push: stage: push only: changes: - Dockerfile.in - make_images.sh - entrypoint.sh push-v3.8: extends: .push script: - ./make_images.sh push v3.8 push-v3.9: extends: .push script: - ./make_images.sh push v3.9 push-v3.10: extends: .push script: - ./make_images.sh push v3.10 push-v.3.11: extends: .push script: - ./make_images.sh push v3.11 push-edge: extends: .push script: - ./make_images.sh push edge # Manifest jobs .manifest: stage: manifest variables: DOCKER_CLI_EXPERIMENTAL: enabled only: changes: - Dockerfile.in - make_images.sh - entrypoint.sh manifest-v3.8: extends: .manifest script: - ./make_images.sh manifest v3.8 manifest-v3.9: extends: .manifest script: - ./make_images.sh manifest v3.9 manifest-v3.10: extends: .manifest script: - ./make_images.sh manifest v3.10 manifest-v3.11: extends: .manifest script: - ./make_images.sh manifest v3.11 manifest-edge: extends: .manifest script: - ./make_images.sh manifest edge # cleanup images/layers cleanup: stage: cleanup script: - docker system prune --force only: changes: - Dockerfile.in - make_images.sh - entrypoint.sh