]> 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 09:37:01 +0000 (11:37 +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 7634f46a5c860eeab80e3cf5357387f216aa2a5c..636ae6f1749c36ea3412511cba0ca6d0a3747ece 100644 (file)
@@ -385,19 +385,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
@@ -406,7 +409,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 v2 -m check $TEST_NAME