testing.yml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. name: gokrb5
  2. on: [push, pull_request]
  3. jobs:
  4. build:
  5. name: Tests
  6. runs-on: ubuntu-latest
  7. strategy:
  8. matrix:
  9. go: [ '1.11.x', '1.12.x', '1.13.x' ]
  10. env:
  11. TEST_KDC_ADDR: 127.0.0.1
  12. TEST_HTTP_URL: http://cname.test.gokrb5
  13. TEST_HTTP_ADDR: 127.0.0.1
  14. DNS_IP: 127.0.88.53
  15. DNSUTILS_OVERRIDE_NS: 127.0.88.53:53
  16. steps:
  17. - name: Set up Go ${{ matrix.go }}
  18. uses: actions/setup-go@v1
  19. with:
  20. go-version: ${{ matrix.go }}
  21. - name: Checkout
  22. uses: actions/checkout@v2
  23. with:
  24. ref: ${{ github.ref }}
  25. - name: Test well formatted with gofmt
  26. run: |
  27. GO_FILES=$(find . -iname '*.go' -type f | grep -v /vendor/)
  28. test -z $(gofmt -s -d -l -e $GO_FILES | tee /dev/fd/2 | xargs | sed 's/\s//g')
  29. id: gofmt
  30. - name: Get dependencies
  31. run: |
  32. go get -v -t -d ./...
  33. id: goGet
  34. - name: Unit tests
  35. run: go test -race ./...
  36. id: unitTests
  37. - name: Start integration test dependencies
  38. run: |
  39. sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq krb5-user
  40. sudo chmod 666 /etc/krb5.conf
  41. sudo docker run -d -h ns.test.gokrb5 -v /etc/localtime:/etc/localtime:ro -e "TEST_KDC_ADDR=${TEST_KDC_ADDR}" -e "TEST_HTTP_ADDR=${TEST_HTTP_ADDR}" -p ${DNSUTILS_OVERRIDE_NS}:53 -p ${DNSUTILS_OVERRIDE_NS}:53/udp --name dns jcmturner/gokrb5:dns
  42. sudo docker run -d -h kdc.test.gokrb5 -v /etc/localtime:/etc/localtime:ro -p 88:88 -p 88:88/udp -p 464:464 -p 464:464/udp --name krb5kdc jcmturner/gokrb5:kdc-centos-default
  43. sudo docker run -d -h kdc.test.gokrb5 -v /etc/localtime:/etc/localtime:ro -p 78:88 -p 78:88/udp --name krb5kdc-old jcmturner/gokrb5:kdc-older
  44. sudo docker run -d -h kdc.test.gokrb5 -v /etc/localtime:/etc/localtime:ro -p 98:88 -p 98:88/udp --name krb5kdc-latest jcmturner/gokrb5:kdc-latest
  45. sudo docker run -d -h kdc.resdom.gokrb5 -v /etc/localtime:/etc/localtime:ro -p 188:88 -p 188:88/udp --name krb5kdc-resdom jcmturner/gokrb5:kdc-resdom
  46. sudo docker run -d -h kdc.test.gokrb5 -v /etc/localtime:/etc/localtime:ro -p 58:88 -p 58:88/udp --name krb5kdc-shorttickets jcmturner/gokrb5:kdc-shorttickets
  47. sudo docker run -d --add-host host.test.gokrb5:127.0.0.88 -v /etc/localtime:/etc/localtime:ro -p 80:80 -p 443:443 --name gokrb5-http jcmturner/gokrb5:http
  48. sudo sed -i 's/nameserver .*/nameserver '${DNS_IP}'/g' /etc/resolv.conf
  49. dig _kerberos._udp.TEST.GOKRB5
  50. id: intgTestDeps
  51. - name: Run Examples
  52. run: |
  53. go run -tags="examples" examples/example.go
  54. id: examples
  55. - name: Tests including integration tests
  56. run: |
  57. go test -race ./...
  58. env:
  59. INTEGRATION: 1
  60. TESTPRIVILEGED: 1
  61. id: intgTests
  62. - name: Tests (32bit)
  63. run: |
  64. go test ./...
  65. env:
  66. GOARCH: 386
  67. INTEGRATION: 1
  68. TESTPRIVILEGED: 1
  69. id: test32