Merge pull request #109 from Picocrypt/test-build-on-prs

Create test builds on pr
This commit is contained in:
Evan Su 2025-04-10 12:50:02 -04:00 committed by GitHub
commit a59e9b2bf4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 198 additions and 0 deletions

View file

@ -0,0 +1,71 @@
name: pr-test-build-linux
permissions:
contents: write
on:
pull_request:
branches:
- main
jobs:
pr-test-build-linux:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '>=1.24'
check-latest: true
cache: false
- name: Install packages
run: |
sudo apt install -y gcc xorg-dev libgtk-3-dev libgl1-mesa-dev libglu1-mesa wget
- name: Install dependencies
run: |
cd src
go mod download
- name: Build
run: |
cd src
go build -v -ldflags="-s -w" -o Picocrypt Picocrypt.go
env:
CGO_ENABLED: 1
GOAMD64: v1
- name: Package as .deb
run: |
wget https://github.com/user-attachments/files/16136712/Picocrypt.zip
python -m zipfile -e Picocrypt.zip Picocrypt
cp src/Picocrypt Picocrypt/Picocrypt/usr/bin/picocrypt-gui
VERSION=$(cat VERSION)
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Version: $VERSION" >> Picocrypt/Picocrypt/DEBIAN/control
echo "Version=$VERSION" >> Picocrypt/Picocrypt/usr/share/applications/picocrypt.desktop
cd Picocrypt
dpkg-deb -Zxz --build --root-owner-group Picocrypt
- name: Prepare to upload artifacts
run: |
mkdir out
mv src/Picocrypt out
mv Picocrypt/Picocrypt.deb out
rm -rf src
rm -rf Picocrypt
mv out/Picocrypt .
mv out/Picocrypt.deb .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pr-test-build-linux-ONLY-FOR-TESTING
path: |
Picocrypt
Picocrypt.deb
if-no-files-found: error
compression-level: 9

View file

@ -0,0 +1,57 @@
name: pr-test-build-macos
permissions:
contents: write
on:
pull_request:
branches:
- main
jobs:
pr-test-build-macos:
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '>=1.24'
check-latest: true
cache: false
- name: Install packages
run: |
brew install glfw glew
- name: Install dependencies
run: |
cd src
go mod download
- name: Build
run: |
cd src
go build -v -ldflags="-s -w" -o Picocrypt Picocrypt.go
env:
CGO_ENABLED: 1
- name: Package as .app in a .dmg
run: |
mv dist/macos/Picocrypt.app.zip .
unzip -d Picocrypt.app Picocrypt.app.zip
rm Picocrypt.app.zip
mv src/Picocrypt Picocrypt.app/Contents/MacOS/Picocrypt
mkdir out
cp -R Picocrypt.app out
hdiutil create Picocrypt.dmg -volname Picocrypt -fs APFS -format UDZO -srcfolder out
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pr-test-build-macos-ONLY-FOR-TESTING
path: |
Picocrypt.dmg
if-no-files-found: error
compression-level: 9

View file

@ -0,0 +1,70 @@
name: pr-test-build-windows
permissions:
contents: write
on:
pull_request:
branches:
- main
jobs:
pr-test-build-windows:
runs-on: windows-2025
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '>=1.24'
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: v1
- name: Add icon, manifest, and version info
shell: pwsh
run: |
Invoke-WebRequest -OutFile reshacker_setup.zip https://github.com/user-attachments/files/18878075/reshacker_setup.zip
Expand-Archive -DestinationPath reshacker_setup reshacker_setup.zip
reshacker_setup/reshacker_setup.exe /SILENT
Start-Sleep -Seconds 60
Invoke-Expression "& `"$Env:P`" -open src/1.exe -save src/2.exe -action addoverwrite -res images/key.ico -mask `"ICONGROUP,MAINICON,`""
Start-Sleep -Seconds 30
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 30
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 30
Invoke-Expression "& `"$Env:P`" -open dist/windows/versioninfo.rc -save resources.res -action compile"
Start-Sleep -Seconds 30
Invoke-Expression "& `"$Env:P`" -open src/4.exe -save src/5.exe -action addoverwrite -res resources.res"
Start-Sleep -Seconds 30
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: pr-test-build-windows-ONLY-FOR-TESTING
path: src/*.exe
if-no-files-found: error
compression-level: 9