build.yaml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. name: Build
  2. "on":
  3. "push":
  4. "tags":
  5. - "v*"
  6. "branches":
  7. - "*"
  8. "pull_request":
  9. jobs:
  10. build:
  11. runs-on: ubuntu-latest
  12. env:
  13. GO111MODULE: "on"
  14. steps:
  15. - uses: actions/checkout@master
  16. - uses: actions/setup-go@v2
  17. with:
  18. go-version: 1.17.6
  19. - name: Prepare environment
  20. run: |-
  21. RELEASE_VERSION="${GITHUB_REF##*/}"
  22. if [[ "${RELEASE_VERSION}" != v* ]]; then RELEASE_VERSION='dev'; fi
  23. echo "RELEASE_VERSION=\"${RELEASE_VERSION}@${GITHUB_SHA:0:10}\"" | tee -a $GITHUB_ENV
  24. go mod vendor
  25. # Test
  26. - name: Unit Testing
  27. run: go test .
  28. # Win
  29. - run: GOOS=windows GOARCH=386 VERSION=${RELEASE_VERSION} make release
  30. - run: GOOS=windows GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
  31. - run: GOOS=windows GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
  32. # MacOS
  33. - run: GOOS=darwin GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
  34. - run: GOOS=darwin GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
  35. # Linux X86/AMD64
  36. - run: GOOS=linux GOARCH=386 VERSION=${RELEASE_VERSION} make release
  37. - run: GOOS=linux GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
  38. # Linux ARM
  39. - run: GOOS=linux GOARCH=arm GOARM=6 VERSION=${RELEASE_VERSION} make release
  40. - run: GOOS=linux GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
  41. # Linux MIPS/MIPSLE
  42. - run: GOOS=linux GOARCH=mips GOMIPS=softfloat VERSION=${RELEASE_VERSION} make release
  43. - run: GOOS=linux GOARCH=mipsle GOMIPS=softfloat VERSION=${RELEASE_VERSION} make release
  44. # FreeBSD X86
  45. - run: GOOS=freebsd GOARCH=386 VERSION=${RELEASE_VERSION} make release
  46. - run: GOOS=freebsd GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
  47. # FreeBSD ARM/ARM64
  48. - run: GOOS=freebsd GOARCH=arm GOARM=6 VERSION=${RELEASE_VERSION} make release
  49. - run: GOOS=freebsd GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
  50. - run: ls -l build/aliddns-*
  51. - name: Create release
  52. if: startsWith(github.ref, 'refs/tags/v')
  53. id: create_release
  54. uses: actions/create-release@v1
  55. env:
  56. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  57. with:
  58. tag_name: ${{ github.ref }}
  59. release_name: Release ${{ github.ref }}
  60. draft: false
  61. prerelease: false
  62. - name: Upload
  63. if: startsWith(github.ref, 'refs/tags/v')
  64. uses: xresloader/upload-to-github-release@v1
  65. env:
  66. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  67. with:
  68. file: "build/aliddns-*.tar.gz;build/aliddns-*.zip"
  69. tags: true
  70. draft: false