Skip to content
Snippets Groups Projects
Commit a8ea90d8 authored by Anthony GRAIGNIC's avatar Anthony GRAIGNIC Committed by Jerome DESCHAMPS
Browse files

Update gitlab ci with release

parent 929e9b48
No related branches found
No related tags found
1 merge request!90Update gitlab ci with release
image: gitlab.limos.fr:5005/ecomobicoin/infra/rust-builder-image:1.71
cache:
paths:
- target/
variables:
PACKAGE_REGISTRY_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic
before_script:
- | # skip if not using custom Rust image
if hash rustc 2>/dev/null; then
rustc --version
cargo --version
fi
stages:
- lint
- build
- test
- release-build
- release
- deploy
image: gitlab.limos.fr:5005/angraign/rust-ci-image:1.71
# image: rust:latest
before_script:
- rustc --version && cargo --version
# variables:
# CARGO_HOME: $CI_PROJECT_DIR/.cargo
#cache:
# paths:
# - target/
# cache:
# key: one-key-to-rule-them-all
# paths:
# - $CARGO_HOME/bin
# - $CARGO_HOME/registry/index
# - $CARGO_HOME/registry/cache
# - $CARGO_HOME/git/db
lint:
stage: lint
script:
......@@ -104,26 +103,84 @@ package-docker:
- if: $CI_COMMIT_BRANCH
exists:
- Dockerfile
# release:
# stage: release
# image: registry.gitlab.com/gitlab-org/release-cli:latest
# variables:
# LINUX_ASSET_LINK: '{"name":"gitlab-downloader-linux-86_64-${CI_COMMIT_TAG}","url":"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/gitlab-downloader","type":"package"}'
# release-build-apple:
# stage: release-build
# script:
# - echo "Releasing..."
# - echo "Tag = ${CI_COMMIT_TAG}"
# - echo "URL = ${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}"
# - echo "LINUX = ${LINUX_ASSET_LINK}"
# - echo "WIN = ${WIN_ASSET_LINK}"
# # x64 Mac
# - cargo build --target x86_64-apple-darwin --workspace --profile=production
# - |
# curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/x86_64-apple-darwin/production/truite" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/apple-x86_64/truite"
# # ARM Mac e.g. Macbook Pro with M1
# - cargo build --target aarch64-apple-darwin --workspace --profile=production
# - |
# release-cli --debug create --name "Release ${CI_COMMIT_TAG}" --tag-name "${CI_COMMIT_TAG}" --assets-link "${LINUX_ASSET_LINK}" --assets-link "${WIN_ASSET_LINK}"
# - echo "Done!"
# needs:
# - job: build
# artifacts: true
# curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/aarch64-apple-darwin/production/truite" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/apple-aarch64/truite"
# rules:
# - if: '$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v[0-9]\.[0-9]\.[0-9](-rc.+)?/'
# - if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/"
# when: always
# tags:
# - ecomobicoin
release-build-linux:
stage: release-build
script:
- cargo build --target x86_64-unknown-linux-gnu --workspace --profile=production
- |
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/x86_64-unknown-linux-gnu/production/truite" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/truite"
rules:
- if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/"
when: always
tags:
- ecomobicoin
release-docker:
stage: release-build
image: docker:latest
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
variables:
CONTAINER_COMMIT_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}"
CONTAINER_RELEASE_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}"
script:
- echo "Building docker image... (CONTAINER_COMMIT_IMAGE = ${CONTAINER_COMMIT_IMAGE}, CONTAINER_RELEASE_IMAGE = ${CONTAINER_RELEASE_IMAGE})"
- docker build --pull -t $CONTAINER_COMMIT_IMAGE .
- docker tag $CONTAINER_COMMIT_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
rules:
- if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/"
when: always
tags:
- ecomobicoin
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
variables:
LINUX_ASSET_LINK: '{"name":"truite-linux-86_64-${CI_COMMIT_TAG}","url":"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/truite","type":"package"}'
# MAC_INTEL_ASSET_LINK: '{"name":"truite-apple-86_64-${CI_COMMIT_TAG}","url":"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/apple-x86_64/truite","type":"package"}'
# MAC_ARM_ASSET_LINK: '{"name":"truite-apple-aarch64-${CI_COMMIT_TAG}","url":"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/apple-aarch64/truite","type":"package"}'
DOCKER_ASSET_LINK: '{"name":"truite:${CI_COMMIT_TAG}","url":"${CI_PROJECT_URL}/container_registry","type":"image"}'
script:
- echo "Releasing..."
- echo "Tag = ${CI_COMMIT_TAG}"
- echo "URL = ${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}"
- echo "LINUX = ${LINUX_ASSET_LINK}"
# - echo "MAC INTEL = ${MAC_INTEL_ASSET_LINK}"
# - echo "MAC ARM = ${MAC_ARM_ASSET_LINK}"
- echo "DOCKER = ${DOCKER_ASSET_LINK}"
- |
release-cli --debug create --name "Release ${CI_COMMIT_TAG}" --tag-name "${CI_COMMIT_TAG}" --assets-link "${LINUX_ASSET_LINK}" --assets-link "${DOCKER_ASSET_LINK}"
- echo "Done!"
needs:
- job: release-build-linux
artifacts: true
# - job: release-build-apple
# artifacts: true
- job: release-docker
artifacts: true
rules:
- if: "$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v/"
when: always
deploy-eco1:
image: alpine:latest
......@@ -142,3 +199,4 @@ deploy-eco1:
- ssh $SSH_USER@$SSH_HOST "sudo docker pull $CI_REGISTRY_IMAGE && sudo docker-compose -f /opt/ecomobicoin/clermont/docker-compose.yml up -d --no-deps"
only:
- dev
when: manual
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment