From c818c483895b39849fbd5b9c0142a0d8f5d0966f Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Thu, 27 Jun 2024 22:00:31 +0200
Subject: [PATCH] feat(#195): release-runtime takes name argument

---
 .gitlab-ci.yml                              |  4 +++-
 xtask/res/create_release.gql                |  6 +++---
 xtask/src/main.rs                           |  4 +++-
 xtask/src/release_runtime.rs                | 11 +++++++++--
 xtask/src/release_runtime/create_release.rs |  2 ++
 5 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5923f5a53..1972b1c1b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -191,6 +191,8 @@ tests:
   - echo $RELEASE_FILE_RAW_SPEC
   - export RELEASE_FILE_CLIENT_SPEC=release/gdev_client-specs.yaml
   - echo $RELEASE_FILE_CLIENT_SPEC
+  - export CLIENT_RELEASE_NAME=$RUNTIME-$RUNTIME_VERSION-$CLIENT_VERSION
+  - echo $CLIENT_RELEASE_NAME
 
 trigger_network_release:
   stage: build
@@ -412,7 +414,7 @@ create_client_release:
     SRTOOL_OUTPUT: $CI_PROJECT_DIR/release/srtool_output.json
   script:
     - *define_network_branch_vars
-    - cargo xtask release-runtime $NETWORK_RELEASE $CI_COMMIT_BRANCH $RUNTIME_MILESTONE
+    - cargo xtask release-runtime $CLIENT_RELEASE_NAME $NETWORK_RELEASE $CI_COMMIT_BRANCH $RUNTIME_MILESTONE
     - cargo xtask create-asset-link $RUNTIME_MILESTONE ${RUNTIME}_runtime.compact.compressed.wasm https://nodes.pages.duniter.org/-/rust/duniter-v2s/-/jobs/$CI_JOB_ID/artifacts/$RELEASE_FILE_WASM
     - cargo xtask create-asset-link $RUNTIME_MILESTONE ${RUNTIME}_client-specs.yaml https://nodes.pages.duniter.org/-/rust/duniter-v2s/-/jobs/$CI_JOB_ID/artifacts/$RELEASE_FILE_CLIENT_SPEC
     - cargo xtask create-asset-link $RUNTIME_MILESTONE ${RUNTIME}-raw.json https://nodes.pages.duniter.org/-/rust/duniter-v2s/-/jobs/$CI_JOB_ID/artifacts/$RELEASE_FILE_RAW_SPEC
diff --git a/xtask/res/create_release.gql b/xtask/res/create_release.gql
index eb31aef63..2ba71180f 100644
--- a/xtask/res/create_release.gql
+++ b/xtask/res/create_release.gql
@@ -1,12 +1,12 @@
-mutation CreateReleaseMutation($branch: String!, $description: String!, $milestone: String!, $links: [ReleaseAssetLinkInput!]!) {
+mutation CreateReleaseMutation($name: String!, $branch: String!, $description: String!, $milestone: String!, $links: [ReleaseAssetLinkInput!]!) {
   releaseCreate(input: {
     clientMutationId: "duniter-v2s-xtask"
     description: $description
     milestones: [$milestone]
-    name: $milestone
+    name: $name
     projectPath: "nodes/rust/duniter-v2s"
     ref: $branch
-    tagName: $milestone
+    tagName: $name
     assets: {
       links: $links
     }
diff --git a/xtask/src/main.rs b/xtask/src/main.rs
index 9796b9678..07dd4e976 100644
--- a/xtask/src/main.rs
+++ b/xtask/src/main.rs
@@ -57,6 +57,7 @@ enum DuniterXTaskCommand {
     ReleaseNetwork { network: String, branch: String },
     /// Release a new runtime
     ReleaseRuntime {
+        name: String,
         network: String,
         branch: String,
         milestone: String,
@@ -106,10 +107,11 @@ async fn main() -> Result<()> {
             release_runtime::release_network(network, branch).await
         }
         DuniterXTaskCommand::ReleaseRuntime {
+            name,
             network,
             branch,
             milestone,
-        } => release_runtime::release_runtime(network, branch, milestone).await,
+        } => release_runtime::release_runtime(name, network, branch, milestone).await,
         DuniterXTaskCommand::PrintSpec { network } => release_runtime::print_spec(network).await,
         DuniterXTaskCommand::CreateAssetLink {
             tag,
diff --git a/xtask/src/release_runtime.rs b/xtask/src/release_runtime.rs
index 574867ea6..9f9d61548 100644
--- a/xtask/src/release_runtime.rs
+++ b/xtask/src/release_runtime.rs
@@ -86,6 +86,7 @@ pub(super) async fn release_network(network: String, branch: String) -> Result<(
 }
 
 pub(super) async fn release_runtime(
+    name: String,
     network: String,
     branch: String,
     milestone: String,
@@ -129,8 +130,14 @@ pub(super) async fn release_runtime(
     println!("{}", release_notes);
     let gitlab_token =
         std::env::var("GITLAB_TOKEN").with_context(|| "missing env var GITLAB_TOKEN")?;
-    create_release::create_release(gitlab_token, branch, milestone, release_notes.to_string())
-        .await?;
+    create_release::create_release(
+        gitlab_token,
+        name,
+        branch,
+        milestone,
+        release_notes.to_string(),
+    )
+    .await?;
 
     Ok(())
 }
diff --git a/xtask/src/release_runtime/create_release.rs b/xtask/src/release_runtime/create_release.rs
index bece83eec..ed5e26d3b 100644
--- a/xtask/src/release_runtime/create_release.rs
+++ b/xtask/src/release_runtime/create_release.rs
@@ -27,12 +27,14 @@ pub struct CreateReleaseMutation;
 
 pub(super) async fn create_release(
     gitlab_token: String,
+    name: String,
     branch: String,
     milestone: String,
     release_notes: String,
 ) -> Result<()> {
     // this is the important line
     let request_body = CreateReleaseMutation::build_query(create_release_mutation::Variables {
+        name,
         branch,
         description: release_notes,
         milestone,
-- 
GitLab