From 1e59c98ca9a75c59903fff0eaa243294d6832ee7 Mon Sep 17 00:00:00 2001
From: Louis Capitanchik <contact@louiscap.co>
Date: Wed, 22 Feb 2023 15:14:49 +0000
Subject: [PATCH] Support windows build

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

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ad48810..4580f27 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,13 +1,35 @@
 image: "r.lcr.gr/microhacks/bevy-builder"
 
+test-linux:
+  stage: test
+  before_script:
+    - export CARGO_HOME="${CI_PROJECT_DIR}/.cargo"
+    - export PATH="${CI_PROJECT_DIR}/.cargo/bin:$PATH"
+  cache:
+    key: build-cache-linux
+    paths:
+      - .cargo/registry/cache
+      - .cargo/registry/index
+      - .cargo/git/db
+      - .cargo/bin/
+      - target/
+  script:
+    - cargo test --release
+
+
 build-linux:
   stage: build
+  before_script:
+    - export CARGO_HOME="${CI_PROJECT_DIR}/.cargo"
+    - export PATH="${CI_PROJECT_DIR}/.cargo/bin:$PATH"
   cache:
-    key:
-      files:
-        - Cargo.lock
+    key: build-cache-linux
     paths:
-      - target
+      - .cargo/registry/cache
+      - .cargo/registry/index
+      - .cargo/git/db
+      - .cargo/bin/
+      - target/
   script:
     - cargo build --release
     - strip target/release/crunch
@@ -17,4 +39,28 @@ build-linux:
       - target/release/crunch
     expire_in: 1 day
   only:
-    - trunk
\ No newline at end of file
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+    - when: manual
+
+build-windows:
+  stage: build
+  before_script:
+    - export CARGO_HOME="${CI_PROJECT_DIR}/.cargo"
+    - export PATH="${CI_PROJECT_DIR}/.cargo/bin:$PATH"
+  cache:
+    key: build-cache-windows
+    paths:
+      - .cargo/registry/cache
+      - .cargo/registry/index
+      - .cargo/git/db
+      - .cargo/bin/
+      - target/
+  script:
+    - cargo build --release --target x86_64-pc-windows-gnu
+  artifacts:
+    expire_in: 1 day
+    paths:
+      - target/x86_64-pc-windows-gnu/release/crunch.exe
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+    - when: manual
-- 
GitLab