name: build-windows permissions: contents: write on: push: paths: - "VERSION" branches: - main jobs: build: runs-on: windows-2022 steps: - uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: '>1.18' check-latest: true cache: false - name: Install dependencies run: | cd src go mod download - name: Build run: | cd src go build -v -ldflags="-s -w -H=windowsgui -extldflags=-static" -o 1.exe Picocrypt.go env: CGO_ENABLED: 1 GOAMD64: v2 - name: Add icon, manifest, and version info shell: pwsh run: | Invoke-WebRequest -OutFile reshacker_setup.zip https://github.com/user-attachments/files/15893917/reshacker_setup.zip Expand-Archive -DestinationPath reshacker_setup reshacker_setup.zip reshacker_setup/reshacker_setup.exe /SILENT Start-Sleep -Seconds 30 Invoke-Expression "& `"$Env:P`" -open src/1.exe -save src/2.exe -action addoverwrite -res images/key.ico -mask `"ICONGROUP,MAINICON,`"" Start-Sleep -Seconds 10 Invoke-Expression "& `"$Env:P`" -open src/2.exe -save src/3.exe -action addoverwrite -res images/key.ico -mask `"ICONGROUP,GLFW_ICON,`"" Start-Sleep -Seconds 10 Invoke-Expression "& `"$Env:P`" -open src/3.exe -save src/4.exe -action addoverwrite -res dist/windows/manifest.xml -mask `"MANIFEST,1,`"" Start-Sleep -Seconds 10 Invoke-Expression "& `"$Env:P`" -open dist/windows/versioninfo.rc -save resources.res -action compile" Start-Sleep -Seconds 10 Invoke-Expression "& `"$Env:P`" -open src/4.exe -save src/5.exe -action addoverwrite -res resources.res" Start-Sleep -Seconds 10 env: P: "C:\\Program Files (x86)\\Resource Hacker\\ResourceHacker.exe" - name: Compress with upx shell: pwsh run: | Invoke-WebRequest -OutFile upx.zip https://github.com/user-attachments/files/15894908/upx-4.2.4-win64.zip Expand-Archive -DestinationPath upx upx.zip upx/upx-4.2.4-win64/upx.exe --lzma --brute -o src/Picocrypt.exe src/5.exe - name: Upload artifact uses: actions/upload-artifact@v4 with: name: build-windows path: src/Picocrypt.exe if-no-files-found: error compression-level: 9 - name: Get version tag shell: pwsh run: | $version = Get-Content -Path "VERSION" echo "VERSION=$version" >> $env:GITHUB_ENV - name: Release uses: softprops/action-gh-release@v2 with: files: | src/Picocrypt.exe tag_name: ${{ env.VERSION }} make_latest: true