release.yml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. name: Release 3X-ui
  2. on:
  3. push:
  4. tags:
  5. - "*"
  6. workflow_dispatch:
  7. jobs:
  8. release:
  9. runs-on: ubuntu-20.04
  10. outputs:
  11. upload_url: ${{ steps.create_release.outputs.upload_url }}
  12. steps:
  13. - name: Create Release
  14. id: create_release
  15. uses: actions/create-release@v1
  16. env:
  17. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  18. with:
  19. tag_name: ${{ github.ref }}
  20. release_name: ${{ github.ref }}
  21. draft: true
  22. prerelease: true
  23. linuxamd64build:
  24. name: build x-ui amd64 version
  25. needs: release
  26. runs-on: ubuntu-20.04
  27. steps:
  28. - uses: actions/checkout@v3
  29. - name: Set up Go
  30. uses: actions/setup-go@v3
  31. with:
  32. go-version: 1.19
  33. - name: build linux amd64 version
  34. run: |
  35. CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o xui-release -v main.go
  36. mkdir x-ui
  37. cp xui-release x-ui/xui-release
  38. cp x-ui.service x-ui/x-ui.service
  39. cp x-ui.sh x-ui/x-ui.sh
  40. cd x-ui
  41. mv xui-release x-ui
  42. mkdir bin
  43. cd bin
  44. wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip
  45. unzip Xray-linux-64.zip
  46. rm -f Xray-linux-64.zip geoip.dat geosite.dat
  47. wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
  48. wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
  49. mv xray xray-linux-amd64
  50. cd ..
  51. cd ..
  52. - name: package
  53. run: tar -zcvf x-ui-linux-amd64.tar.gz x-ui
  54. - name: upload
  55. uses: actions/upload-release-asset@v1
  56. env:
  57. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  58. with:
  59. upload_url: ${{ needs.release.outputs.upload_url }}
  60. asset_path: x-ui-linux-amd64.tar.gz
  61. asset_name: x-ui-linux-amd64.tar.gz
  62. asset_content_type: application/gzip
  63. linuxarm64build:
  64. name: build x-ui arm64 version
  65. needs: release
  66. runs-on: ubuntu-20.04
  67. steps:
  68. - uses: actions/checkout@v3
  69. - name: Set up Go
  70. uses: actions/setup-go@v3
  71. with:
  72. go-version: 1.19
  73. - name: build linux arm64 version
  74. run: |
  75. sudo apt-get update
  76. sudo apt install gcc-aarch64-linux-gnu
  77. CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o xui-release -v main.go
  78. mkdir x-ui
  79. cp xui-release x-ui/xui-release
  80. cp x-ui.service x-ui/x-ui.service
  81. cp x-ui.sh x-ui/x-ui.sh
  82. cd x-ui
  83. mv xui-release x-ui
  84. mkdir bin
  85. cd bin
  86. wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-arm64-v8a.zip
  87. unzip Xray-linux-arm64-v8a.zip
  88. rm -f Xray-linux-arm64-v8a.zip geoip.dat geosite.dat
  89. wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
  90. wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
  91. mv xray xray-linux-arm64
  92. cd ..
  93. cd ..
  94. - name: package
  95. run: tar -zcvf x-ui-linux-arm64.tar.gz x-ui
  96. - name: upload
  97. uses: actions/upload-release-asset@v1
  98. env:
  99. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  100. with:
  101. upload_url: ${{ needs.release.outputs.upload_url }}
  102. asset_path: x-ui-linux-arm64.tar.gz
  103. asset_name: x-ui-linux-arm64.tar.gz
  104. asset_content_type: application/gzip
  105. linuxs390xbuild:
  106. name: build x-ui s390x version
  107. needs: release
  108. runs-on: ubuntu-20.04
  109. steps:
  110. - uses: actions/checkout@v3
  111. - name: Set up Go
  112. uses: actions/setup-go@v3
  113. with:
  114. go-version: 1.19
  115. - name: build linux s390x version
  116. run: |
  117. sudo apt-get update
  118. sudo apt install gcc-s390x-linux-gnu -y
  119. CGO_ENABLED=1 GOOS=linux GOARCH=s390x CC=s390x-linux-gnu-gcc go build -o xui-release -v main.go
  120. mkdir x-ui
  121. cp xui-release x-ui/xui-release
  122. cp x-ui.service x-ui/x-ui.service
  123. cp x-ui.sh x-ui/x-ui.sh
  124. cd x-ui
  125. mv xui-release x-ui
  126. mkdir bin
  127. cd bin
  128. wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-s390x.zip
  129. unzip Xray-linux-s390x.zip
  130. rm -f Xray-linux-s390x.zip geoip.dat geosite.dat
  131. wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
  132. wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
  133. mv xray xray-linux-s390x
  134. cd ..
  135. cd ..
  136. - name: package
  137. run: tar -zcvf x-ui-linux-s390x.tar.gz x-ui
  138. - name: upload
  139. uses: actions/upload-release-asset@v1
  140. env:
  141. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  142. with:
  143. upload_url: ${{ needs.release.outputs.upload_url }}
  144. asset_path: x-ui-linux-s390x.tar.gz
  145. asset_name: x-ui-linux-s390x.tar.gz
  146. asset_content_type: application/gzip