testing.yml 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. name: v7
  2. on:
  3. push:
  4. paths-ignore:
  5. - 'v[0-9]+/**'
  6. pull_request:
  7. paths-ignore:
  8. - 'v[0-9]+/**'
  9. jobs:
  10. build:
  11. name: Tests
  12. runs-on: ubuntu-latest
  13. strategy:
  14. matrix:
  15. go: [ '1.13.x', '1.14.x' ]
  16. env:
  17. TEST_KDC_ADDR: 127.0.0.1
  18. TEST_HTTP_URL: http://cname.test.gokrb5
  19. TEST_HTTP_ADDR: 127.0.0.1
  20. DNS_IP: 127.0.88.53
  21. DNSUTILS_OVERRIDE_NS: 127.0.88.53:53
  22. steps:
  23. - name: Set up Go ${{ matrix.go }}
  24. uses: actions/setup-go@v1
  25. with:
  26. go-version: ${{ matrix.go }}
  27. - name: Checkout
  28. uses: actions/checkout@v2
  29. with:
  30. ref: ${{ github.ref }}
  31. - name: Test well formatted with gofmt
  32. run: |
  33. # Remove major version sub directories
  34. find . -maxdepth 1 -type d -regex '\./v[0-9]+' | xargs -i rm -rf {}
  35. GO_FILES=$(find . -iname '*.go' -type f | grep -v /vendor/)
  36. test -z $(gofmt -s -d -l -e $GO_FILES | tee /dev/fd/2 | xargs | sed 's/\s//g')
  37. id: gofmt
  38. - name: Copy to gopkg.in in GOPATH
  39. run: |
  40. mkdir -p /home/runner/go/src/gopkg.in/jcmturner/gokrb5.v7
  41. cp -r $GITHUB_WORKSPACE/* /home/runner/go/src/gopkg.in/jcmturner/gokrb5.v7
  42. id: gopkg
  43. - name: Get dependencies
  44. run: |
  45. go get -v -t -d ./...
  46. id: goGet
  47. - name: Unit tests
  48. run: |
  49. cd /home/runner/go/src/gopkg.in/jcmturner/gokrb5.v7
  50. go test -race $(go list ./... | grep -E -v '/v[0-9]+' | grep -v /vendor/)
  51. id: unitTests
  52. - name: Start integration test dependencies
  53. run: |
  54. sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq krb5-user
  55. sudo chmod 666 /etc/krb5.conf
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. sudo sed -i 's/nameserver .*/nameserver '${DNS_IP}'/g' /etc/resolv.conf
  64. dig _kerberos._udp.TEST.GOKRB5
  65. id: intgTestDeps
  66. - name: Run Examples
  67. run: go run -tags="examples" examples/example.go
  68. id: examples
  69. - name: Tests including integration tests
  70. run: |
  71. cd /home/runner/go/src/gopkg.in/jcmturner/gokrb5.v7
  72. go test -race $(go list ./... | grep -E -v '/v[0-9]+' | grep -v /vendor/)
  73. env:
  74. INTEGRATION: 1
  75. TESTPRIVILEGED: 1
  76. id: intgTests
  77. - name: Tests (32bit)
  78. run: |
  79. cd /home/runner/go/src/gopkg.in/jcmturner/gokrb5.v7
  80. go test $(go list ./... | grep -E -v '/v[0-9]+' | grep -v /vendor/)
  81. env:
  82. GOARCH: 386
  83. INTEGRATION: 1
  84. TESTPRIVILEGED: 1
  85. id: test32