Browse Source

foo

merge-requests/225/head
Jonas Zohren 4 years ago
parent
commit
51c80c2e62
No known key found for this signature in database
GPG Key ID: FE3ED5D90A175463
  1. 77
      .gitlab-ci.yml

77
.gitlab-ci.yml

@ -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:

Loading…
Cancel
Save