installer.yml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. name: test installer.sh
  2. on:
  3. push:
  4. branches:
  5. - "main"
  6. paths:
  7. - scripts/installer.sh
  8. pull_request:
  9. branches:
  10. - "*"
  11. paths:
  12. - scripts/installer.sh
  13. jobs:
  14. test:
  15. strategy:
  16. # Don't abort the entire matrix if one element fails.
  17. fail-fast: false
  18. # Don't start all of these at once, which could saturate Github workers.
  19. max-parallel: 4
  20. matrix:
  21. image:
  22. # This is a list of Docker images against which we test our installer.
  23. # If you find that some of these no longer exist, please feel free
  24. # to remove them from the list.
  25. # When adding new images, please only use official ones.
  26. - "debian:oldstable-slim"
  27. - "debian:stable-slim"
  28. - "debian:testing-slim"
  29. - "debian:sid-slim"
  30. - "ubuntu:18.04"
  31. - "ubuntu:20.04"
  32. - "ubuntu:22.04"
  33. - "ubuntu:22.10"
  34. - "ubuntu:23.04"
  35. - "elementary/docker:stable"
  36. - "elementary/docker:unstable"
  37. - "parrotsec/core:lts-amd64"
  38. - "parrotsec/core:latest"
  39. - "kalilinux/kali-rolling"
  40. - "kalilinux/kali-dev"
  41. - "oraclelinux:9"
  42. - "oraclelinux:8"
  43. - "fedora:latest"
  44. - "rockylinux:8.7"
  45. - "rockylinux:9"
  46. - "amazonlinux:latest"
  47. - "opensuse/leap:latest"
  48. - "opensuse/tumbleweed:latest"
  49. - "archlinux:latest"
  50. - "alpine:3.14"
  51. - "alpine:latest"
  52. - "alpine:edge"
  53. deps:
  54. # Run all images installing curl as a dependency.
  55. - curl
  56. include:
  57. # Check a few images with wget rather than curl.
  58. - { image: "debian:oldstable-slim", deps: "wget" }
  59. - { image: "debian:sid-slim", deps: "wget" }
  60. - { image: "ubuntu:23.04", deps: "wget" }
  61. # Ubuntu 16.04 also needs apt-transport-https installed.
  62. - { image: "ubuntu:16.04", deps: "curl apt-transport-https" }
  63. - { image: "ubuntu:16.04", deps: "wget apt-transport-https" }
  64. runs-on: ubuntu-latest
  65. container:
  66. image: ${{ matrix.image }}
  67. options: --user root
  68. steps:
  69. - name: install dependencies (yum)
  70. # tar and gzip are needed by the actions/checkout below.
  71. run: yum install -y --allowerasing tar gzip ${{ matrix.deps }}
  72. if: |
  73. contains(matrix.image, 'centos')
  74. || contains(matrix.image, 'oraclelinux')
  75. || contains(matrix.image, 'fedora')
  76. || contains(matrix.image, 'amazonlinux')
  77. - name: install dependencies (zypper)
  78. # tar and gzip are needed by the actions/checkout below.
  79. run: zypper --non-interactive install tar gzip
  80. if: contains(matrix.image, 'opensuse')
  81. - name: install dependencies (apt-get)
  82. run: |
  83. apt-get update
  84. apt-get install -y ${{ matrix.deps }}
  85. if: |
  86. contains(matrix.image, 'debian')
  87. || contains(matrix.image, 'ubuntu')
  88. || contains(matrix.image, 'elementary')
  89. || contains(matrix.image, 'parrotsec')
  90. || contains(matrix.image, 'kalilinux')
  91. - name: checkout
  92. uses: actions/checkout@v3
  93. - name: run installer
  94. run: scripts/installer.sh
  95. # Package installation can fail in docker because systemd is not running
  96. # as PID 1, so ignore errors at this step. The real check is the
  97. # `tailscale --version` command below.
  98. continue-on-error: true
  99. - name: check tailscale version
  100. run: tailscale --version