mirror of
https://github.com/Picocrypt/Picocrypt.git
synced 2025-05-12 13:48:31 +02:00
Merge pull request #109 from Picocrypt/test-build-on-prs
Create test builds on pr
This commit is contained in:
commit
a59e9b2bf4
3 changed files with 198 additions and 0 deletions
71
.github/workflows/pr-test-build-linux.yml
vendored
Normal file
71
.github/workflows/pr-test-build-linux.yml
vendored
Normal 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
|
57
.github/workflows/pr-test-build-macos.yml
vendored
Normal file
57
.github/workflows/pr-test-build-macos.yml
vendored
Normal 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
|
70
.github/workflows/pr-test-build-windows.yml
vendored
Normal file
70
.github/workflows/pr-test-build-windows.yml
vendored
Normal 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
|
Loading…
Add table
Reference in a new issue