diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 821966f4..e77af2c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: types: [published] push: branches: - - test-branch + - main tags: - "v*.*.*" paths: @@ -153,75 +153,75 @@ jobs: # ================================= # 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.12.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 + 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.12.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