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.
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
- 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