فهرست منبع

Merge pull request #157 from misakano7545/main

增加Actions CI自动编译,以及增加对s390x架构的VPS支持
vaxilu 3 سال پیش
والد
کامیت
57363ee778
2فایلهای تغییر یافته به همراه149 افزوده شده و 0 حذف شده
  1. 147 0
      .github/workflows/release.yml
  2. 2 0
      install.sh

+ 147 - 0
.github/workflows/release.yml

@@ -0,0 +1,147 @@
+name: Release X-ui
+on:
+  push:
+    tags:
+      - 0.*
+  workflow_dispatch:
+
+jobs:
+  release:
+    runs-on: ubuntu-latest
+    outputs:
+      upload_url: ${{ steps.create_release.outputs.upload_url }}
+    steps:
+      - name: Create Release
+        id: create_release
+        uses: actions/create-release@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GAYHUB_TOKEN }}
+        with:
+          tag_name: ${{ github.ref }}
+          release_name: ${{ github.ref }}
+          draft: true
+          prerelease: true
+  linuxamd64build:
+    name: build x-ui amd64 version
+    needs: release
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: 1.18
+      - name: build linux amd64 version
+        run: |
+          CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o xui-release -v main.go
+          mkdir x-ui
+          cp xui-release x-ui/xui-release
+          cp x-ui.service x-ui/x-ui.service
+          cp x-ui.sh x-ui/x-ui.sh
+          cd x-ui
+          mv xui-release x-ui
+          mkdir bin
+          cd bin
+          wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip
+          unzip Xray-linux-64.zip
+          rm -f Xray-linux-64.zip geoip.dat geosite.dat
+          wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
+          wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
+          mv xray xray-linux-amd64
+          cd ..
+          cd ..
+      - name: package
+        run: tar -zcvf x-ui-linux-amd64.tar.gz x-ui
+      - name: upload
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GAYHUB_TOKEN }}
+        with:
+          upload_url: ${{ needs.release.outputs.upload_url }}
+          asset_path: x-ui-linux-amd64.tar.gz
+          asset_name: x-ui-linux-amd64.tar.gz
+          asset_content_type: application/gzip
+  linuxarm64build:
+    name: build x-ui arm64 version
+    needs: release
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: 1.18
+      - name: build linux arm64 version
+        run: |
+          sudo apt-get update
+          sudo apt install gcc-aarch64-linux-gnu
+          CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o xui-release -v main.go
+          mkdir x-ui
+          cp xui-release x-ui/xui-release
+          cp x-ui.service x-ui/x-ui.service
+          cp x-ui.sh x-ui/x-ui.sh
+          cd x-ui
+          mv xui-release x-ui
+          mkdir bin
+          cd bin
+          wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-arm64-v8a.zip
+          unzip Xray-linux-arm64-v8a.zip
+          rm -f Xray-linux-arm64-v8a.zip geoip.dat geosite.dat
+          wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
+          wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
+          mv xray xray-linux-arm64
+          cd ..
+          cd ..
+      - name: package
+        run: tar -zcvf x-ui-linux-arm64.tar.gz x-ui
+      - name: upload
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GAYHUB_TOKEN }}
+        with:
+          upload_url: ${{ needs.release.outputs.upload_url }}
+          asset_path: x-ui-linux-arm64.tar.gz
+          asset_name: x-ui-linux-arm64.tar.gz
+          asset_content_type: application/gzip
+  linuxs390xbuild:
+    name: build x-ui s390x version
+    needs: release
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: 1.18
+      - name: build linux s390x version
+        run: |
+          sudo apt-get update
+          sudo apt install gcc-s390x-linux-gnu -y
+          CGO_ENABLED=1 GOOS=linux GOARCH=s390x CC=s390x-linux-gnu-gcc go build -o xui-release -v main.go
+          mkdir x-ui
+          cp xui-release x-ui/xui-release
+          cp x-ui.service x-ui/x-ui.service
+          cp x-ui.sh x-ui/x-ui.sh
+          cd x-ui
+          mv xui-release x-ui
+          mkdir bin
+          cd bin
+          wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-s390x.zip
+          unzip Xray-linux-s390x.zip
+          rm -f Xray-linux-s390x.zip geoip.dat geosite.dat
+          wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
+          wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
+          mv xray xray-linux-s390x
+          cd ..
+          cd ..
+      - name: package
+        run: tar -zcvf x-ui-linux-s390x.tar.gz x-ui
+      - name: upload
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GAYHUB_TOKEN }}
+        with:
+          upload_url: ${{ needs.release.outputs.upload_url }}
+          asset_path: x-ui-linux-s390x.tar.gz
+          asset_name: x-ui-linux-s390x.tar.gz
+          asset_content_type: application/gzip

+ 2 - 0
install.sh

@@ -35,6 +35,8 @@ if [[ $arch == "x86_64" || $arch == "x64" || $arch == "amd64" ]]; then
     arch="amd64"
 elif [[ $arch == "aarch64" || $arch == "arm64" ]]; then
     arch="arm64"
+elif [[ $arch == "s390x" ]]; then
+    arch="s390x"
 else
     arch="amd64"
     echo -e "${red}检测架构失败,使用默认架构: ${arch}${plain}"