name: Build-Windows on: [push] jobs: build: runs-on: windows-latest steps: - name: Setup Go uses: actions/setup-go@v2 with: go-version: 1.18.x - name: Check out code into the Go module directory uses: actions/checkout@v3 - name: Go cache paths id: go-cache-paths run: | echo "::set-output name=go-build::$(go env GOCACHE)" echo "::set-output name=go-mod::$(go env GOMODCACHE)" - name: Cache go module uses: actions/cache@v2 with: path: | ${{ steps.go-cache-paths.outputs.go-mod }} ${{ steps.go-cache-paths.outputs.go-build }} key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Setup Python uses: actions/setup-python@v3 with: python-version: '3.9' architecture: 'x64' - name: Get dependencies, run test id: test run: | cmd /c mklink /J D:\python-amd64 $env:pythonLocation echo "::set-output name=file_sha::$(git describe --tags --always)" echo "::set-output name=file_date::$(Get-Date -Format 'yyyyMMdd')" ((Get-Content -path constant/version.go -Raw) -replace 'unknown version',$(Get-Date -Format 'yyyy.MM.dd')) | Set-Content -Path constant/version.go ((Get-Content -path constant/version.go -Raw) -replace 'unknown time',$(Get-Date)) | Set-Content -Path constant/version.go # go test go test -tags build_actions ./... - name: Build #if: startsWith(github.ref, 'refs/tags/') env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | $env:CGO_ENABLED=1; go build -tags build_actions -trimpath -ldflags '-w -s -buildid=' -o bin/clash-plus-windows-amd64.exe $env:GOAMD64="v3"; $env:CGO_ENABLED=1; go build -tags build_actions -trimpath -ldflags '-w -s -buildid=' -o bin/clash-plus-windows-amd64-v3.exe $version = Get-Date -Format 'yyyy.MM.dd' cd bin/ Compress-Archive -Path clash-plus-windows-amd64.exe -DestinationPath clash-plus-windows-amd64-$version.zip Compress-Archive -Path clash-plus-windows-amd64-v3.exe -DestinationPath clash-plus-windows-amd64-v3-$version.zip Remove-Item -Force clash-plus-windows-amd64.exe Remove-Item -Force clash-plus-windows-amd64-v3.exe "$version" | Out-File version.txt -NoNewLine curl ` -X PATCH ` -H "Accept: application/vnd.github.v3+json" ` -H "Authorization: token $env:GITHUB_TOKEN" ` https://api.github.com/repos/yaling888/clash/releases/66325518 ` -d '{"name":"Plus Pro $version","draft":true}' | Out-Null curl ` -X POST ` -H "Content-Type: application/zip" ` -T "clash-plus-windows-amd64-$version.zip" ` -H "Accept: application/vnd.github.v3+json" ` -H "Authorization: token $env:GITHUB_TOKEN" ` "https://uploads.github.com/repos/yaling888/clash/releases/66325518/assets?name=clash-plus-windows-amd64-$version.zip" | Out-Null curl ` -X POST ` -H "Content-Type: application/zip" ` -T "clash-plus-windows-amd64-v3-$version.zip" ` -H "Accept: application/vnd.github.v3+json" ` -H "Authorization: token $env:GITHUB_TOKEN" ` "https://uploads.github.com/repos/yaling888/clash/releases/66325518/assets?name=clash-plus-windows-amd64-v3-$version.zip" | Out-Null curl ` -X POST ` -H "Content-Type: text/plain" ` -T "version.txt" ` -H "Accept: application/vnd.github.v3+json" ` -H "Authorization: token $env:GITHUB_TOKEN" ` https://uploads.github.com/repos/yaling888/clash/releases/66325518/assets?name=version-1.txt | Out-Null #- name: Upload files to Artifacts # uses: actions/upload-artifact@v2 # with: # name: clash-windows-amd64-${{ steps.test.outputs.file_sha }}-${{ steps.test.outputs.file_date }} # path: | # bin/* #- name: Delete workflow runs # uses: GitRML/delete-workflow-runs@main # with: # retain_days: 1 # keep_minimum_runs: 2