summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 3b699fc37975cb1b1975581012c84ead3c36d3e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
image: debian:sid-slim

shellcheck:
  stage: test
  script:
    - apt-get update
    - apt-get dist-upgrade --yes
    - apt-get --no-install-recommends --yes install shellcheck
    - shellcheck debvm-*

codespell:
  stage: test
  script:
    - apt-get update
    - apt-get dist-upgrade --yes
    - apt-get --no-install-recommends --yes install codespell
    - codespell debvm-*

simpletest:
  stage: test
  parallel:
    matrix:
      - RELEASE:
        - sid
        - bookworm
        - bullseye
        - buster
        - stretch
        - jessie
  script:
    - apt-get update
    - apt-get dist-upgrade --yes
    - apt-get --no-install-recommends --yes install e2fsprogs genext2fs mmdebstrap openssh-client qemu-kvm sleepenh
    - ssh-keygen -f ~/.ssh/id -N ''
    - ./debvm-create -k ~/.ssh/id.pub -r $RELEASE
    - timeout 120s ./debvm-run -s 2222 &
    - |
      timeout=5
      sshopt="-o StrictHostKeyChecking=no $(if test "$RELEASE" = jessie; then echo -o PubkeyAcceptedKeyTypes=+ssh-rsa; fi)"
      ts=$(sleepenh 0 || [ $? -eq 1 ])
      for i in $(seq 10); do
        rv=0
        ssh $sshopt -o ConnectTimeout="$timeout" -i ~/.ssh/id -p 2222 root@localhost echo success || rv=$?
        test $rv -eq 0 && break
        ts=$(sleepenh "$ts" "$timeout" || [ $? -eq 1 ]);
        if test $i -eq 10; then
          echo "timeout reached" >&2
          exit 1
        fi
      done
    - ssh $sshopt -i ~/.ssh/id -p 2222 root@localhost poweroff