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
Branches
Tags
1 merge request!17add release script publishing in CI
#!/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
...@@ -26,3 +27,14 @@ build: ...@@ -26,3 +27,14 @@ build:
# only build gcli when adding a tag # only build gcli when adding a tag
only: only:
- tags - tags
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.
Please register or to comment