chore(CI): Adjust CI for master and next branch development model
- Build release builds for branches "master" and "next" - Push docker images under different tags, depending on why the pipeline started - branch master: push to `latest` - branch next: push to `next` - tag: push to `$TAG_NAME` Signed-off-by: Jonas Zohren <git-pbkyr@jzohren.de>
This commit is contained in:
		
							parent
							
								
									0d6ae2e1e7
								
							
						
					
					
						commit
						a1f51440e2
					
				
					 1 changed files with 58 additions and 11 deletions
				
			
		|  | @ -18,7 +18,8 @@ variables: | ||||||
|   stage: "build" |   stage: "build" | ||||||
|   needs: [] |   needs: [] | ||||||
|   rules: |   rules: | ||||||
|     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' |     - if: '$CI_COMMIT_BRANCH == "master"' | ||||||
|  |     - if: '$CI_COMMIT_BRANCH == "next"' | ||||||
|     - if: '$CI_COMMIT_TAG' |     - if: '$CI_COMMIT_TAG' | ||||||
|   interruptible: true |   interruptible: true | ||||||
|   image: "rust:latest" |   image: "rust:latest" | ||||||
|  | @ -42,6 +43,8 @@ variables: | ||||||
|   script: |   script: | ||||||
|     - time cargo build --target $TARGET --release |     - time cargo build --target $TARGET --release | ||||||
|     - 'mv "target/$TARGET/release/conduit" "conduit-$TARGET"' |     - 'mv "target/$TARGET/release/conduit" "conduit-$TARGET"' | ||||||
|  |   artifacts: | ||||||
|  |     expire_in: never | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| build:release:cargo:x86_64-unknown-linux-gnu: | build:release:cargo:x86_64-unknown-linux-gnu: | ||||||
|  | @ -113,6 +116,8 @@ build:release:cargo:x86_64-unknown-linux-musl: | ||||||
|   script: |   script: | ||||||
|     - "time cargo build --target $TARGET" |     - "time cargo build --target $TARGET" | ||||||
|     - 'mv "target/$TARGET/debug/conduit" "conduit-debug-$TARGET"' |     - 'mv "target/$TARGET/debug/conduit" "conduit-debug-$TARGET"' | ||||||
|  |   artifacts: | ||||||
|  |     expire_in: 4 weeks | ||||||
| 
 | 
 | ||||||
| build:debug:cargo:x86_64-unknown-linux-gnu: | build:debug:cargo:x86_64-unknown-linux-gnu: | ||||||
|   extends: ".cargo-debug-shared-settings" |   extends: ".cargo-debug-shared-settings" | ||||||
|  | @ -152,7 +157,8 @@ build:debug:cargo:x86_64-unknown-linux-musl: | ||||||
|   stage: "build" |   stage: "build" | ||||||
|   needs: [ ] |   needs: [ ] | ||||||
|   rules: |   rules: | ||||||
|     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' |     - if: '$CI_COMMIT_BRANCH == "master"' | ||||||
|  |     - if: '$CI_COMMIT_BRANCH == "next"' | ||||||
|     - if: '$CI_COMMIT_TAG' |     - if: '$CI_COMMIT_TAG' | ||||||
|   interruptible: true |   interruptible: true | ||||||
|   image: "rust:latest" |   image: "rust:latest" | ||||||
|  | @ -187,11 +193,11 @@ build:cargo-deb:x86_64-unknown-linux-gnu: | ||||||
|     expose_as: "Debian Package x86_64" |     expose_as: "Debian Package x86_64" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # --------------------------------------------------------------------- # | # --------------------------------------------------------------------- # | ||||||
| #  Create and publish docker image                                      # | #  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: | .docker-shared-settings: | ||||||
|   stage: "build docker image" |   stage: "build docker image" | ||||||
|   needs: [] |   needs: [] | ||||||
|  | @ -208,8 +214,30 @@ 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' |     - '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:next: | ||||||
| build:docker:main: |   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:next" | ||||||
|  |       --destination "$CI_REGISTRY_IMAGE/conduit:next-alpine" | ||||||
|  |       --destination "$CI_REGISTRY_IMAGE/conduit:commit-$CI_COMMIT_SHORT_SHA" | ||||||
|  |       --destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:next" | ||||||
|  |       --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 == "next"' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | build:docker:master: | ||||||
|   extends: .docker-shared-settings |   extends: .docker-shared-settings | ||||||
|   needs: |   needs: | ||||||
|     - "build:release:cargo:x86_64-unknown-linux-musl" |     - "build:release:cargo:x86_64-unknown-linux-musl" | ||||||
|  | @ -223,13 +251,31 @@ build:docker:main: | ||||||
|       --build-arg "GIT_REF=$CI_COMMIT_SHORT_SHA" |       --build-arg "GIT_REF=$CI_COMMIT_SHORT_SHA" | ||||||
|       --dockerfile "$CI_PROJECT_DIR/docker/ci-binaries-packaging.Dockerfile" |       --dockerfile "$CI_PROJECT_DIR/docker/ci-binaries-packaging.Dockerfile" | ||||||
|       --destination "$CI_REGISTRY_IMAGE/conduit:latest" |       --destination "$CI_REGISTRY_IMAGE/conduit:latest" | ||||||
|       --destination "$CI_REGISTRY_IMAGE/conduit:alpine" |       --destination "$CI_REGISTRY_IMAGE/conduit:latest-alpine" | ||||||
|       --destination "$CI_REGISTRY_IMAGE/conduit:commit-$CI_COMMIT_SHORT_SHA" |  | ||||||
|       --destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:latest" |       --destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:latest" | ||||||
|       --destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:alpine" |       --destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:latest-alpine" | ||||||
|       --destination "$DOCKER_HUB_IMAGE/matrixconduit/matrix-conduit:commit-$CI_COMMIT_SHORT_SHA" |   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: |   rules: | ||||||
|     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' |  | ||||||
|     - if: '$CI_COMMIT_TAG' |     - if: '$CI_COMMIT_TAG' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -331,7 +377,8 @@ publish:package: | ||||||
|     - "build:release:cargo:x86_64-unknown-linux-musl" |     - "build:release:cargo:x86_64-unknown-linux-musl" | ||||||
|     - "build:cargo-deb:x86_64-unknown-linux-gnu" |     - "build:cargo-deb:x86_64-unknown-linux-gnu" | ||||||
|   rules: |   rules: | ||||||
|     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' |     - if: '$CI_COMMIT_BRANCH == "master"' | ||||||
|  |     - if: '$CI_COMMIT_BRANCH == "next"' | ||||||
|     - if: '$CI_COMMIT_TAG' |     - if: '$CI_COMMIT_TAG' | ||||||
|   image: curlimages/curl:latest |   image: curlimages/curl:latest | ||||||
|   tags: ["docker"] |   tags: ["docker"] | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue