Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanaei <ho3ein.sanaei@gmail.com>2025-09-09 19:41:44 +0300
committerGitHub <noreply@github.com>2025-09-09 19:41:44 +0300
commitc2d6dd923f72cb044704653fc9ce6f1dd521e156 (patch)
treecd69e2a049da5de78adc791aa4fd28dbab53c65f /.github
parent723ec25fb21a9b7924824c24a44bfa4f59d62493 (diff)
windows workflow (#3439)
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/release.yml76
1 files changed, 76 insertions, 0 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 96ef2d7b..1c36c5cc 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -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 \ No newline at end of file