build.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. name: Build
  2. on: [push, pull_request]
  3. jobs:
  4. coredhcp:
  5. runs-on: ubuntu-latest
  6. strategy:
  7. matrix:
  8. go: ['1.22', '1.23']
  9. steps:
  10. - uses: actions/checkout@v4
  11. with:
  12. # clone in the gopath
  13. path: src/github.com/${{ github.repository }}
  14. - uses: actions/setup-go@v5
  15. with:
  16. stable: false
  17. go-version: ${{ matrix.go }}
  18. - name: setup environment
  19. run: |
  20. # `env` doesn't allow for variable expansion, so we use the GITHUB_ENV
  21. # trick.
  22. echo "GOPATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV
  23. echo "GO111MODULE=on" >> $GITHUB_ENV
  24. - name: build coredhcp
  25. run: |
  26. set -exu
  27. cd $GITHUB_WORKSPACE/src/github.com/${{ github.repository }}/cmds/coredhcp
  28. go build
  29. - uses: actions/upload-artifact@v4
  30. with:
  31. name: coredhcp-${{ matrix.go }}
  32. path: src/github.com/${{ github.repository }}/cmds/coredhcp/coredhcp
  33. if-no-files-found: error
  34. coredhcp-generator:
  35. runs-on: ubuntu-latest
  36. strategy:
  37. matrix:
  38. go: ['1.22', '1.23']
  39. steps:
  40. - uses: actions/checkout@v4
  41. with:
  42. # clone in the gopath
  43. path: src/github.com/${{ github.repository }}
  44. - uses: actions/setup-go@v5
  45. with:
  46. stable: false
  47. go-version: ${{ matrix.go }}
  48. - name: setup environment
  49. run: |
  50. # `env` doesn't allow for variable expansion, so we use the GITHUB_ENV
  51. # trick.
  52. echo "GOPATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV
  53. echo "GOBIN=$GITHUB_WORKSPACE/bin" >> $GITHUB_ENV
  54. - name: build coredhcp-generator
  55. run: |
  56. set -exu
  57. cd "${GITHUB_WORKSPACE}"/src/github.com/${{ github.repository }}/cmds/coredhcp-generator
  58. go build
  59. builddir=$(./coredhcp-generator -f core-plugins.txt)
  60. cd "${builddir}"
  61. ls -l
  62. go mod init "coredhcp"
  63. go mod edit -replace "github.com/coredhcp/coredhcp=${GITHUB_WORKSPACE}/src/github.com/${{ github.repository }}"
  64. go mod tidy
  65. go build
  66. gofmt -w "${builddir}/coredhcp.go"
  67. diff -u "${builddir}/coredhcp.go" "${GITHUB_WORKSPACE}"/src/github.com/${{ github.repository }}/cmds/coredhcp/main.go