Skip to content
Snippets Groups Projects
Commit fbf95014 authored by poka's avatar poka
Browse files

add release script publishing in CI

from chatGPT
parent d7ee6deb
No related branches found
No related tags found
No related merge requests found
#!/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
if [ -z "$CI_COMMIT_TAG" ]; then
echo "This script should only be run on a tag."
exit 1
fi
# Variables
PROJECT_ID="604"
RELEASE_NAME="v$CI_COMMIT_TAG"
RELEASE_DESCRIPTION="Release v$CI_COMMIT_TAG is awesome !"
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é."
...@@ -4,6 +4,7 @@ image: "rust:latest" ...@@ -4,6 +4,7 @@ image: "rust:latest"
stages: stages:
- build - build
- release
build: build:
stage: build stage: build
...@@ -25,4 +26,15 @@ build: ...@@ -25,4 +26,15 @@ build:
- target/release - target/release
# only build gcli when adding a tag # only build gcli when adding a tag
only: only:
- tags - tags
\ No newline at end of file
release:
stage: release
image: rust
script:
- chmod +x .ci/release_script.sh
- .ci/release_script.sh
only:
- tags
dependencies:
- build
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