From 161eb736c9399a6e17e30c02be055ee8cf8a00ef Mon Sep 17 00:00:00 2001
From: Geoffrey Arthaud <geoffrey.arthaud@developpement-durable.gouv.fr>
Date: Wed, 28 Feb 2024 20:07:15 +0100
Subject: [PATCH] Add windows CI build

---
 .gitlab-ci.yml | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fe82aac..dad8294 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -54,14 +54,13 @@ test-rust-nightly:
 .rust-release:
   stage: release
   variables:
-    TARGET: target/$TARGET_ARCH/release/gitlab-project-doctor
+    APP_NAME: gitlab-project-doctor
+    TARGET: target/$TARGET_ARCH/release/$APP_NAME
   script:
     - rustup target add $TARGET_ARCH
     - cargo build $CARGO_OPTS --target $TARGET_ARCH --release
-    - strip $TARGET
-    - $LDD_CMD $TARGET
-    - $TARGET --help
-    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$TARGET_ARCH/${CI_COMMIT_TAG:-latest}/gitlab-project-doctor" -O'
+    - if [ -z "$NO_POSTPROCESS" ]; then strip $TARGET; $LDD_CMD $TARGET; $TARGET --help; fi
+    - 'if [ -z "$DEBUG" ]; then curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $APP_NAME "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_COMMIT_TAG:-latest}/latest/$APP_NAME"; fi'
   artifacts:
     paths:
       - $TARGET
@@ -97,6 +96,17 @@ release-macos-x86:
   tags:
     - macos_mx
 
+release-windows:
+  extends: .rust-release
+  image: rust:$RUST_VERSION
+  variables:
+    TARGET_ARCH: x86_64-pc-windows-gnu
+    APP_NAME: gitlab-project-doctor.exe
+    NO_POSTPROCESS: "true"
+  before_script:
+    - apt-get update
+    - apt-get install -y lld gcc-mingw-w64-x86-64
+
 docker_build:
   stage: deploy
   variables:
-- 
GitLab