]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
CI: fix test collisions between branches
authorMaria Matejka <mq@ucw.cz>
Tue, 17 Dec 2024 11:38:12 +0000 (12:38 +0100)
committerMaria Matejka <mq@ucw.cz>
Tue, 1 Apr 2025 10:33:53 +0000 (12:33 +0200)
The build-netlab job was side-effecting the test-* jobs,
and if for some reason Gitlab scheduled build-netlab before
other pipeline's test-* jobs finished, these jobs got a wrong
binary, possibly failing. Solved by using explicit artifacts, which is
not the fastest way to do this (we could keep the binaries named there)
but it's the gitlab-right way to do this.

.gitlab-ci.yml

index 517aae843870d21d382484f207d81849d17ad55c..6cb54b8e219c4076b5023b8e90a88dbc90855130 100644 (file)
@@ -311,19 +311,22 @@ pkg-opensuse-15.3-amd64:
 
 build-netlab:
   stage: build
+  variables:
+    BDIR: build-netlab
   tags:
     - netlab
     - amd64
   script:
-    - DIR=$(pwd)
     - autoreconf
-    - ./configure
+    - mkdir $BDIR
+    - cd $BDIR
+    - ../configure
     - make
-    - cd $TOOLS_DIR
-    - sudo git clean -fx
-    - git pull --ff-only
-    - mv $DIR/bird $DIR/birdc netlab/common
-    - ln -s $STAYRTR_BINARY netlab/common/stayrtr
+  artifacts:
+    paths:
+      - $BDIR/bird
+      - $BDIR/birdc
+    expire_in: 2 hours
 
 .test: &test-base
   stage: test
@@ -332,7 +335,13 @@ build-netlab:
     - netlab
     - amd64
   script:
-    - cd $TOOLS_DIR/netlab
+    - DIR=$(pwd)
+    - cd $TOOLS_DIR
+    - sudo git clean -fx
+    - git pull --ff-only
+    - mv $DIR/build-netlab/* netlab/common/
+    - ln -s $STAYRTR_BINARY netlab/common/stayrtr
+    - cd netlab
     - sudo ./stop
     - sudo ./runtest -s v3 -m check $TEST_NAME