<<: *test-job
stage: install
script:
- # check that bird is _not_ installed now
+ # check that bird is _not_ installed now and no user or group bird exists
- |
if bird --version >/dev/null 2>&1; then
- echo "Error: bird unexpectedly installed"
+ echo "Error: BIRD unexpectedly installed"
+ exit 1
+ fi
+ if id -g bird >/dev/null 2>&1; then
+ echo "Error: User group 'bird' unexpectedly exist before installation"
+ exit 1
+ fi
+ if id -u bird >/dev/null 2>&1; then
+ echo "Error: User 'bird' unexpectedly exist before installation"
exit 1
fi
# install packages
- find pkg/pkgs/ -type f -name '*.deb' '(' -ls -exec dpkg -i '{}' ';' ')'
- # test that install is correct
+ # test that installation is successful
- ./tools/test-install "$CI_COMMIT_MESSAGE"
.install-rpm: &install-rpm
<<: *test-job
stage: install
script:
- # check that bird is _not_ installed now
+ # check that bird is _not_ installed now and no user or group bird exists
- |
if bird --version >/dev/null 2>&1; then
- echo "Error: bird unexpectedly installed"
+ echo "Error: BIRD unexpectedly installed"
+ exit 1
+ fi
+ if id -g bird >/dev/null 2>&1; then
+ echo "Error: User group 'bird' exist before installation"
+ exit 1
+ fi
+ if id -u bird >/dev/null 2>&1; then
+ echo "Error: User 'bird' exist before installation"
exit 1
fi
# install packages
- find pkg/pkgs/ -type f -name '*.rpm' '(' -ls -exec rpm -i '{}' ';' ')'
- # test that install is correct
+ # test that installation is successful
- ./tools/test-install "$CI_COMMIT_MESSAGE"
<<: *test-job
stage: install
script:
- # check that bird is _not_ installed now
+ # check that bird is _not_ installed now and no user or group bird exists
- |
if bird --version >/dev/null 2>&1; then
- echo "Error: bird unexpectedly installed"
+ echo "Error: BIRD unexpectedly installed"
+ exit 1
+ fi
+ if id -g bird >/dev/null 2>&1; then
+ echo "Error: User group 'bird' unexpectedly exist before installation"
+ exit 1
+ fi
+ if id -u bird >/dev/null 2>&1; then
+ echo "Error: User 'bird' unexpectedly exist before installation"
exit 1
fi
# install packages
- find pkg/pkgs/ -type f -name '*.deb' '(' -ls -exec dpkg -i '{}' ';' ')'
- # test that install is correct
+ # test that installation is successful
- ./tools/test-install "$CI_COMMIT_MESSAGE"
.install-rpm: &install-rpm
<<: *test-job
stage: install
script:
- # check that bird is _not_ installed now
+ # check that bird is _not_ installed now and no user or group bird exists
- |
if bird --version >/dev/null 2>&1; then
- echo "Error: bird unexpectedly installed"
+ echo "Error: BIRD unexpectedly installed"
+ exit 1
+ fi
+ if id -g bird >/dev/null 2>&1; then
+ echo "Error: User group 'bird' exist before installation"
+ exit 1
+ fi
+ if id -u bird >/dev/null 2>&1; then
+ echo "Error: User 'bird' exist before installation"
exit 1
fi
# install packages
- find pkg/pkgs/ -type f -name '*.rpm' '(' -ls -exec rpm -i '{}' ';' ')'
- # test that install is correct
+ # test that installation is successful
- ./tools/test-install "$CI_COMMIT_MESSAGE"
{% for dist in distros %}
#!/bin/sh
+# Test that user and user group bird exist
+echo "Testing that user and group 'bird' exists..."
+if ! id bird >/dev/null 2>&1; then
+ echo "Error: User or group 'bird' does not exist after installation"
+ exit 1
+fi
+echo "Success"
+
+
STABLE_VERSION=$(cat VERSION)
CI_COMMIT_MESSAGE=$(echo "$1" | sed '$s/\r\{0,1\}$//') # trimming new line
+echo "Testing version..."
+
bird --version 2>&1 | grep -F "$STABLE_VERSION"
bird --version 2>version-reported
-if [ "$CI_COMMIT_MESSAGE" = "NEWS and version update" ]; then
- echo "Processing a release commit"
+if [ "$CI_COMMIT_MESSAGE" = "NEWS and version update" ]; then
+ echo "Processing a release commit..."
echo "BIRD version ${STABLE_VERSION}" > version-expected
diff version-reported version-expected
else
- echo "Processing a non-release commit"
-
+ echo "Processing a non-release commit..."
if ! grep -qF "BIRD version ${STABLE_VERSION}+branch" version-reported; then
echo "Error: Version mismatch!"
( echo "Reported: "; cat version-reported )
exit 1
fi
fi
+echo "Success"
+
# Run BIRD with minimal config and test with simple birdc commands
mkdir -p /run/bird
birdcl down > down-out 2>&1
birdcl show proto > show-proto-after-down-out 2>&1
+echo "Testing that BIRD can be started..."
if ! grep -qE "BIRD .* ready\." show-proto-out || ! grep -qE "BIRD .* ready\." down-out; then
echo "Error: BIRD did not start correctly"
echo "Output:"
cat show-proto-out down-out
exit 1
fi
+echo "Success"
+echo "Testing that BIRD responds to command-line commands..."
if ! grep -qE "device1\s*Device\s*---\s*up" show-proto-out; then
- echo "Error: BIRD did not show protocols correcly"
+ echo "Error: BIRD did not show protocols correctly"
echo "Output:"
cat show-proto-out
exit 1
cat show-proto-after-down-out
exit 1
fi
+echo "Success"
+
+echo "All install tests passed! (ノ◕ヮ◕)ノ*:・゚✧"