@ -18,7 +18,8 @@ variables:
stage : "build"
needs : [ ]
rules:
- if : '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if : '$CI_COMMIT_BRANCH == "master"'
- if : '$CI_COMMIT_BRANCH == "next"'
- if : '$CI_COMMIT_TAG'
interruptible : true
image : "rust:latest"
@ -42,6 +43,8 @@ variables:
script:
- time cargo build --target $TARGET --release
- 'mv "target/$TARGET/release/conduit" "conduit-$TARGET"'
artifacts:
expire_in : never
build:release:cargo:x86_64-unknown-linux-gnu:
@ -113,6 +116,8 @@ build:release:cargo:x86_64-unknown-linux-musl:
script:
- "time cargo build --target $TARGET"
- 'mv "target/$TARGET/debug/conduit" "conduit-debug-$TARGET"'
artifacts:
expire_in : 4 weeks
build:debug:cargo:x86_64-unknown-linux-gnu:
extends : ".cargo-debug-shared-settings"
@ -152,7 +157,8 @@ build:debug:cargo:x86_64-unknown-linux-musl:
stage : "build"
needs : [ ]
rules:
- if : '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if : '$CI_COMMIT_BRANCH == "master"'
- if : '$CI_COMMIT_BRANCH == "next"'
- if : '$CI_COMMIT_TAG'
interruptible : true
image : "rust:latest"
@ -187,11 +193,11 @@ build:cargo-deb:x86_64-unknown-linux-gnu:
expose_as : "Debian Package x86_64"
# --------------------------------------------------------------------- #
# Create and publish docker image #
# --------------------------------------------------------------------- #
# Build a docker image by packaging up the x86_64-unknown-linux-musl binary into an alpine image
.docker-shared-settings:
stage : "build docker image"
needs : [ ]
@ -208,8 +214,7 @@ build:cargo-deb:x86_64-unknown-linux-gnu:
- 'echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"},\"$DOCKER_HUB\":{\"username\":\"$DOCKER_HUB_USER\",\"password\":\"$DOCKER_HUB_PASSWORD\"}}}" > /kaniko/.docker/config.json'
# Build a docker image by packaging up the x86_64-unknown-linux-musl binary into an alpine image
build:docker:main:
build:docker:next:
extends : .docker-shared-settings
needs:
- "build:release:cargo:x86_64-unknown-linux-musl"
@ -222,14 +227,55 @@ build:docker:main:
--build-arg VERSION=$(grep -m1 -o '[0-9].[0-9].[0-9]' Cargo.toml)
--build-arg "GIT_REF=$CI_COMMIT_SHORT_SHA"
--dockerfile "$CI_PROJECT_DIR/docker/ci-binaries-packaging.Dockerfile"
--destination "$CI_REGISTRY_IMAGE/conduit: lates t"
--destination "$CI_REGISTRY_IMAGE/conduit: alpine"
--destination "$CI_REGISTRY_IMAGE/conduit: nex t"
--destination "$CI_REGISTRY_IMAGE/conduit: next- alpine"
--destination "$CI_REGISTRY_IMAGE/conduit:commit-$CI_COMMIT_SHORT_SHA"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit: lates t"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit: alpine"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit: nex t"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit: next- alpine"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:commit-$CI_COMMIT_SHORT_SHA"
rules:
- if : '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if : '$CI_COMMIT_BRANCH == "next"'
build:docker:master:
extends : .docker-shared-settings
needs:
- "build:release:cargo:x86_64-unknown-linux-musl"
script:
- >
/kaniko/executor
$KANIKO_CACHE_ARGS
--context $CI_PROJECT_DIR
--build-arg CREATED=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
--build-arg VERSION=$(grep -m1 -o '[0-9].[0-9].[0-9]' Cargo.toml)
--build-arg "GIT_REF=$CI_COMMIT_SHORT_SHA"
--dockerfile "$CI_PROJECT_DIR/docker/ci-binaries-packaging.Dockerfile"
--destination "$CI_REGISTRY_IMAGE/conduit:latest"
--destination "$CI_REGISTRY_IMAGE/conduit:latest-alpine"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:latest"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:latest-alpine"
rules:
- if : '$CI_COMMIT_BRANCH == "master"'
build:docker:tags:
extends : .docker-shared-settings
needs:
- "build:release:cargo:x86_64-unknown-linux-musl"
script:
- >
/kaniko/executor
$KANIKO_CACHE_ARGS
--context $CI_PROJECT_DIR
--build-arg CREATED=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
--build-arg VERSION=$(grep -m1 -o '[0-9].[0-9].[0-9]' Cargo.toml)
--build-arg "GIT_REF=$CI_COMMIT_SHORT_SHA"
--dockerfile "$CI_PROJECT_DIR/docker/ci-binaries-packaging.Dockerfile"
--destination "$CI_REGISTRY_IMAGE/conduit:$CI_COMMIT_TAG"
--destination "$CI_REGISTRY_IMAGE/conduit:$CI_COMMIT_TAG-alpine"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:$CI_COMMIT_TAG"
--destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:$CI_COMMIT_TAG-alpine"
rules:
- if : '$CI_COMMIT_TAG'
@ -331,7 +377,8 @@ publish:package:
- "build:release:cargo:x86_64-unknown-linux-musl"
- "build:cargo-deb:x86_64-unknown-linux-gnu"
rules:
- if : '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if : '$CI_COMMIT_BRANCH == "master"'
- if : '$CI_COMMIT_BRANCH == "next"'
- if : '$CI_COMMIT_TAG'
image : curlimages/curl:latest
tags : [ "docker" ]