|
|
|
@ -20,8 +20,6 @@ variables: |
|
|
|
- if: '$CI_COMMIT_BRANCH == "master"' |
|
|
|
- if: '$CI_COMMIT_BRANCH == "master"' |
|
|
|
- if: '$CI_COMMIT_BRANCH == "next"' |
|
|
|
- if: '$CI_COMMIT_BRANCH == "next"' |
|
|
|
- if: "$CI_COMMIT_TAG" |
|
|
|
- if: "$CI_COMMIT_TAG" |
|
|
|
# TODO: Remove this before merging: |
|
|
|
|
|
|
|
- if: '$CI_COMMIT_BRANCH == "better-multiarch-building-the-second-attempt"' |
|
|
|
|
|
|
|
interruptible: true |
|
|
|
interruptible: true |
|
|
|
image: "rust:latest" |
|
|
|
image: "rust:latest" |
|
|
|
tags: ["docker"] |
|
|
|
tags: ["docker"] |
|
|
|
@ -125,55 +123,11 @@ build:debug:cargo:x86_64-unknown-linux-musl: |
|
|
|
- "conduit-debug-x86_64-unknown-linux-musl" |
|
|
|
- "conduit-debug-x86_64-unknown-linux-musl" |
|
|
|
expose_as: "Conduit DEBUG for x86_64-unknown-linux-musl" |
|
|
|
expose_as: "Conduit DEBUG for x86_64-unknown-linux-musl" |
|
|
|
|
|
|
|
|
|
|
|
# --------------------------------------------------------------------- # |
|
|
|
|
|
|
|
# Cargo: Compiling deb packages for different architectures # |
|
|
|
|
|
|
|
# --------------------------------------------------------------------- # |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#.build-cargo-deb-shared-settings: |
|
|
|
|
|
|
|
# stage: "build" |
|
|
|
|
|
|
|
# needs: [ ] |
|
|
|
|
|
|
|
# rules: |
|
|
|
|
|
|
|
# - if: '$CI_COMMIT_BRANCH == "master"' |
|
|
|
|
|
|
|
# - if: '$CI_COMMIT_BRANCH == "next"' |
|
|
|
|
|
|
|
# - if: '$CI_COMMIT_TAG' |
|
|
|
|
|
|
|
# interruptible: true |
|
|
|
|
|
|
|
# image: "rust:latest" |
|
|
|
|
|
|
|
# tags: ["docker"] |
|
|
|
|
|
|
|
# cache: |
|
|
|
|
|
|
|
# paths: |
|
|
|
|
|
|
|
# - cargohome |
|
|
|
|
|
|
|
# - target/ |
|
|
|
|
|
|
|
# key: "build_cache-deb-$TARGET" |
|
|
|
|
|
|
|
# before_script: |
|
|
|
|
|
|
|
# - 'echo "Building debian package for target $TARGET"' |
|
|
|
|
|
|
|
# - 'mkdir -p cargohome && CARGOHOME="cargohome"' |
|
|
|
|
|
|
|
# - "cat /etc/*-release && rustc --version && cargo --version" # Print version info for debugging |
|
|
|
|
|
|
|
# - 'apt-get update -yqq' |
|
|
|
|
|
|
|
# - 'echo "Installing packages: $NEEDED_PACKAGES"' |
|
|
|
|
|
|
|
# - "apt-get install -yqq --no-install-recommends $NEEDED_PACKAGES" |
|
|
|
|
|
|
|
# - "rustup target add $TARGET" |
|
|
|
|
|
|
|
# - "cargo install cargo-deb" |
|
|
|
|
|
|
|
# script: |
|
|
|
|
|
|
|
# - time cargo deb --target $TARGET |
|
|
|
|
|
|
|
# - 'mv target/$TARGET/debian/*.deb "conduit-$TARGET.deb"' |
|
|
|
|
|
|
|
# |
|
|
|
|
|
|
|
#build:cargo-deb:x86_64-unknown-linux-gnu: |
|
|
|
|
|
|
|
# extends: .build-cargo-deb-shared-settings |
|
|
|
|
|
|
|
# variables: |
|
|
|
|
|
|
|
# TARGET: "x86_64-unknown-linux-gnu" |
|
|
|
|
|
|
|
# NEEDED_PACKAGES: "" |
|
|
|
|
|
|
|
# artifacts: |
|
|
|
|
|
|
|
# name: "conduit-x86_64-unknown-linux-gnu.deb" |
|
|
|
|
|
|
|
# paths: |
|
|
|
|
|
|
|
# - "conduit-x86_64-unknown-linux-gnu.deb" |
|
|
|
|
|
|
|
# expose_as: "Debian Package x86_64" |
|
|
|
|
|
|
|
# |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# --------------------------------------------------------------------- # |
|
|
|
# --------------------------------------------------------------------- # |
|
|
|
# Create and publish docker image # |
|
|
|
# Create and publish docker image # |
|
|
|
# --------------------------------------------------------------------- # |
|
|
|
# --------------------------------------------------------------------- # |
|
|
|
|
|
|
|
|
|
|
|
build:docker: |
|
|
|
.docker-shared-settings: |
|
|
|
stage: "build docker image" |
|
|
|
stage: "build docker image" |
|
|
|
image: jdrouet/docker-with-buildx:stable |
|
|
|
image: jdrouet/docker-with-buildx:stable |
|
|
|
tags: ["docker"] |
|
|
|
tags: ["docker"] |
|
|
|
@ -184,20 +138,16 @@ build:docker: |
|
|
|
- "build:release:cargo:arm-unknown-linux-musleabihf" |
|
|
|
- "build:release:cargo:arm-unknown-linux-musleabihf" |
|
|
|
- "build:release:cargo:armv7-unknown-linux-musleabihf" |
|
|
|
- "build:release:cargo:armv7-unknown-linux-musleabihf" |
|
|
|
- "build:release:cargo:aarch64-unknown-linux-musl" |
|
|
|
- "build:release:cargo:aarch64-unknown-linux-musl" |
|
|
|
rules: |
|
|
|
|
|
|
|
- if: '$CI_COMMIT_BRANCH == "master"' |
|
|
|
|
|
|
|
- if: '$CI_COMMIT_BRANCH == "next"' |
|
|
|
|
|
|
|
# TODO: Remove this after debugging |
|
|
|
|
|
|
|
- if: '$CI_COMMIT_BRANCH == "better-multiarch-building-the-second-attempt"' |
|
|
|
|
|
|
|
variables: |
|
|
|
variables: |
|
|
|
DOCKER_HOST: tcp://docker:2375/ |
|
|
|
DOCKER_HOST: tcp://docker:2375/ |
|
|
|
DOCKER_TLS_CERTDIR: "" |
|
|
|
DOCKER_TLS_CERTDIR: "" |
|
|
|
DOCKER_DRIVER: overlay2 |
|
|
|
DOCKER_DRIVER: overlay2 |
|
|
|
PLATFORMS: "linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/amd64" |
|
|
|
PLATFORMS: "linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/amd64" |
|
|
|
IMAGE_TAG: "$CI_REGISTRY_IMAGE/debug-conduit:multiarch-test-dont-use-yet" |
|
|
|
|
|
|
|
DOCKER_FILE: "docker/ci-binaries-packaging.Dockerfile" |
|
|
|
DOCKER_FILE: "docker/ci-binaries-packaging.Dockerfile" |
|
|
|
before_script: |
|
|
|
before_script: |
|
|
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY |
|
|
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY |
|
|
|
|
|
|
|
# Only log in to Dockerhub if the credentials are given: |
|
|
|
|
|
|
|
- if [ -n $DOCKER_HUB ]; then docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" "$DOCKER_HUB"; fi |
|
|
|
script: |
|
|
|
script: |
|
|
|
# Prepare buildx to build multiarch stuff: |
|
|
|
# Prepare buildx to build multiarch stuff: |
|
|
|
- docker context create 'ci-context' |
|
|
|
- docker context create 'ci-context' |
|
|
|
@ -208,7 +158,26 @@ build:docker: |
|
|
|
- mkdir -p linux/arm/ && mv ./conduit-armv7-unknown-linux-musleabihf linux/arm/v7 |
|
|
|
- mkdir -p linux/arm/ && mv ./conduit-armv7-unknown-linux-musleabihf linux/arm/v7 |
|
|
|
- mkdir -p linux/arm64/ && mv ./conduit-aarch64-unknown-linux-musl linux/arm64/v8 |
|
|
|
- mkdir -p linux/arm64/ && mv ./conduit-aarch64-unknown-linux-musl linux/arm64/v8 |
|
|
|
# Actually create multiarch image: |
|
|
|
# Actually create multiarch image: |
|
|
|
- docker buildx build --pull --push --platform $PLATFORMS --tag $IMAGE_TAG --file $DOCKER_FILE . |
|
|
|
- docker buildx build --pull --push --platform "$PLATFORMS" --tag "$GL_IMAGE_TAG" --tag "$GL_IMAGE_TAG-commit-$CI_COMMIT_SHORT_SHA"--file "$DOCKER_FILE" . |
|
|
|
|
|
|
|
# Only try to push to docker hub, if auth data for dockerhub exists: |
|
|
|
|
|
|
|
- if [ -n $DOCKER_HUB ]; then docker push "$DH_IMAGE_TAG"; fi |
|
|
|
|
|
|
|
- if [ -n $DOCKER_HUB ]; then docker push "$DH_IMAGE_TAG-commit-$CI_COMMIT_SHORT_SHA"; fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build:docker:next: |
|
|
|
|
|
|
|
extends: .docker-shared-settings |
|
|
|
|
|
|
|
rules: |
|
|
|
|
|
|
|
- if: '$CI_COMMIT_BRANCH == "next"' |
|
|
|
|
|
|
|
variables: |
|
|
|
|
|
|
|
GL_IMAGE_TAG: "$CI_REGISTRY_IMAGE/conduit:next" |
|
|
|
|
|
|
|
DH_IMAGE_TAG: "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:next" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build:docker:master: |
|
|
|
|
|
|
|
extends: .docker-shared-settings |
|
|
|
|
|
|
|
rules: |
|
|
|
|
|
|
|
- if: '$CI_COMMIT_BRANCH == "master"' |
|
|
|
|
|
|
|
variables: |
|
|
|
|
|
|
|
GL_IMAGE_TAG: "$CI_REGISTRY_IMAGE/conduit:latest" |
|
|
|
|
|
|
|
DH_IMAGE_TAG: "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:latest" |
|
|
|
|
|
|
|
|
|
|
|
## Build a docker image by packaging up the x86_64-unknown-linux-musl binary into an alpine image |
|
|
|
## Build a docker image by packaging up the x86_64-unknown-linux-musl binary into an alpine image |
|
|
|
#.docker-shared-settings: |
|
|
|
#.docker-shared-settings: |
|
|
|
|