linux-release.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. name: Linux Release
  2. permissions:
  3. contents: write
  4. on:
  5. push:
  6. tags:
  7. - '*'
  8. jobs:
  9. release:
  10. runs-on: ubuntu-latest
  11. steps:
  12. - name: Checkout
  13. uses: actions/checkout@v3
  14. with:
  15. fetch-depth: 0
  16. - uses: actions/setup-node@v3
  17. with:
  18. node-version: 16
  19. - name: Build Frontend
  20. env:
  21. CI: ""
  22. run: |
  23. cd web
  24. npm install
  25. REACT_APP_VERSION=$(git describe --tags) npm run build
  26. cd ..
  27. - name: Set up Go
  28. uses: actions/setup-go@v3
  29. with:
  30. go-version: '>=1.18.0'
  31. - name: Build Backend (amd64)
  32. run: |
  33. go mod download
  34. go build -ldflags "-s -w -X 'message-pusher/common.Version=$(git describe --tags)' -extldflags '-static'" -o message-pusher
  35. - name: Build Backend (arm64)
  36. run: |
  37. sudo apt-get update
  38. sudo apt-get install gcc-aarch64-linux-gnu
  39. CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X 'message-pusher/common.Version=$(git describe --tags)' -extldflags '-static'" -o message-pusher-arm64
  40. - name: Release
  41. uses: softprops/action-gh-release@v1
  42. if: startsWith(github.ref, 'refs/tags/')
  43. with:
  44. files: |
  45. message-pusher
  46. message-pusher-arm64
  47. draft: true
  48. generate_release_notes: true
  49. env:
  50. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}