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',$(git describe --tags --always)) | 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/') run: | $env:CGO_ENABLED=1; go build -tags build_actions -trimpath -ldflags '-w -s -buildid=' -o bin/clash-windows-amd64.exe $env:GOAMD64="v3"; $env:CGO_ENABLED=1; go build -tags build_actions -trimpath -ldflags '-w -s -buildid=' -o bin/clash-windows-amd64-v3.exe cd bin/ Compress-Archive -Path clash-windows-amd64.exe -DestinationPath clash-plus-windows-amd64-$(git describe --tags --always)-$(Get-Date -Format 'yyyy.MM.dd').zip Compress-Archive -Path clash-windows-amd64-v3.exe -DestinationPath clash-plus-windows-amd64-v3-$(git describe --tags --always)-$(Get-Date -Format 'yyyy.MM.dd').zip Remove-Item -Force clash-windows-amd64.exe Remove-Item -Force clash-windows-amd64-v3.exe - name: Upload files to Artifacts uses: actions/upload-artifact@v2 if: startsWith(github.ref, 'refs/tags/') == false 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