From 54936ff1b2bee278948a2f7f9ecea230dbde2e9d Mon Sep 17 00:00:00 2001 From: poka <poka@p2p.legal> Date: Wed, 31 Jan 2024 15:26:25 +0100 Subject: [PATCH] add release script publishing in CI from chatGPT --- .ci/release_script.sh | 35 +++++++++++++++++++++++++++++++++++ .gitlab-ci.yml | 13 ++++++++++--- 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 .ci/release_script.sh diff --git a/.ci/release_script.sh b/.ci/release_script.sh new file mode 100644 index 0000000..015f320 --- /dev/null +++ b/.ci/release_script.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# stop script if any command fails +set -e + +# Vérifiez si le token d'accès privé GitLab est défini +if [ -z "$GITLAB_PRIVATE_TOKEN" ]; then + echo "Token d'accès privé GitLab non défini. Arrêt du script." + exit 1 +fi + +# Variables +PROJECT_ID="604" +RELEASE_NAME="Release $CI_COMMIT_TAG" +RELEASE_DESCRIPTION="Description de la release $CI_COMMIT_TAG" +ARTIFACT_PATH="target/release/gcli" +GITLAB_API_URL="https://git.duniter.org/api/v4" + +# Création de la release +echo "Création de la release $RELEASE_NAME..." +curl --header "PRIVATE-TOKEN: $GITLAB_PRIVATE_TOKEN" \ + --data "name=$RELEASE_NAME&tag_name=$CI_COMMIT_TAG&description=$RELEASE_DESCRIPTION" \ + "$GITLAB_API_URL/projects/$PROJECT_ID/releases" + +# Construction de l'URL de l'artéfact +ARTIFACT_URL="$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/raw/$ARTIFACT_PATH?job=build" + +# Ajout de l'artéfact à la release +echo "Ajout de l'artéfact à la release..." +curl --header "PRIVATE-TOKEN: $GITLAB_PRIVATE_TOKEN" \ + --data-urlencode "url=$ARTIFACT_URL" \ + --data-urlencode "name=$(basename $ARTIFACT_PATH)" \ + "$GITLAB_API_URL/projects/$PROJECT_ID/releases/$CI_COMMIT_TAG/assets/links" + +echo "Script terminé." diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fa06a4d..ce6cf30 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,6 +4,7 @@ image: "rust:latest" stages: - build + - release build: stage: build @@ -23,6 +24,12 @@ build: - Cargo.lock paths: - target/release - # only build gcli when adding a tag - only: - - tags \ No newline at end of file + +release: + stage: release + image: rust + script: + - chmod +x .ci/release_script.sh + - .ci/release_script.sh + dependencies: + - build -- GitLab