|
@@ -146,3 +146,79 @@ jobs:
|
|
|
asset_name: x-ui-linux-${{ matrix.platform }}.tar.gz
|
|
|
overwrite: true
|
|
|
prerelease: true
|
|
|
+
|
|
|
+ # =================================
|
|
|
+ # Windows Build
|
|
|
+ # =================================
|
|
|
+ build-windows:
|
|
|
+ name: Build for Windows
|
|
|
+ permissions:
|
|
|
+ contents: write
|
|
|
+ strategy:
|
|
|
+ matrix:
|
|
|
+ platform:
|
|
|
+ - amd64
|
|
|
+ runs-on: windows-latest
|
|
|
+ steps:
|
|
|
+ - name: Checkout repository
|
|
|
+ uses: actions/checkout@v5
|
|
|
+
|
|
|
+ - name: Setup Go
|
|
|
+ uses: actions/setup-go@v6
|
|
|
+ with:
|
|
|
+ go-version-file: go.mod
|
|
|
+ check-latest: true
|
|
|
+
|
|
|
+ - name: Build 3X-UI for Windows
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ $env:CGO_ENABLED="1"
|
|
|
+ $env:GOOS="windows"
|
|
|
+ $env:GOARCH="amd64"
|
|
|
+ go build -ldflags "-w -s" -o xui-release.exe -v main.go
|
|
|
+
|
|
|
+ mkdir x-ui
|
|
|
+ Copy-Item xui-release.exe x-ui\
|
|
|
+ mkdir x-ui\bin
|
|
|
+ cd x-ui\bin
|
|
|
+
|
|
|
+ # Download Xray for Windows
|
|
|
+ $Xray_URL = "https://github.com/XTLS/Xray-core/releases/download/v25.6.8/"
|
|
|
+ Invoke-WebRequest -Uri "${Xray_URL}Xray-windows-64.zip" -OutFile "Xray-windows-64.zip"
|
|
|
+ Expand-Archive -Path "Xray-windows-64.zip" -DestinationPath .
|
|
|
+ Remove-Item "Xray-windows-64.zip"
|
|
|
+ Remove-Item geoip.dat, geosite.dat -ErrorAction SilentlyContinue
|
|
|
+ Invoke-WebRequest -Uri "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat" -OutFile "geoip.dat"
|
|
|
+ Invoke-WebRequest -Uri "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat" -OutFile "geosite.dat"
|
|
|
+ Invoke-WebRequest -Uri "https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geoip.dat" -OutFile "geoip_IR.dat"
|
|
|
+ Invoke-WebRequest -Uri "https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geosite.dat" -OutFile "geosite_IR.dat"
|
|
|
+ Invoke-WebRequest -Uri "https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geoip.dat" -OutFile "geoip_RU.dat"
|
|
|
+ Invoke-WebRequest -Uri "https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geosite.dat" -OutFile "geosite_RU.dat"
|
|
|
+ Rename-Item xray.exe xray-windows-amd64.exe
|
|
|
+ cd ..
|
|
|
+ Copy-Item -Path ..\windows_files\* -Destination . -Recurse
|
|
|
+ cd ..
|
|
|
+
|
|
|
+ - name: Package to Zip
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ Compress-Archive -Path .\x-ui -DestinationPath "x-ui-windows-amd64.zip"
|
|
|
+
|
|
|
+ - name: Upload files to Artifacts
|
|
|
+ uses: actions/upload-artifact@v4
|
|
|
+ with:
|
|
|
+ name: x-ui-windows-amd64
|
|
|
+ path: ./x-ui-windows-amd64.zip
|
|
|
+
|
|
|
+ - name: Upload files to GH release
|
|
|
+ uses: svenstaro/upload-release-action@v2
|
|
|
+ if: |
|
|
|
+ (github.event_name == 'release' && github.event.action == 'published') ||
|
|
|
+ (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
|
|
|
+ with:
|
|
|
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ tag: ${{ github.ref }}
|
|
|
+ file: x-ui-windows-amd64.zip
|
|
|
+ asset_name: x-ui-windows-amd64.zip
|
|
|
+ overwrite: true
|
|
|
+ prerelease: true
|