updates server #343
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Desktop build | |
permissions: | |
contents: write | |
# Build for everything on "main" & "v*.*.*" | |
on: | |
repository_dispatch: | |
types: [ build ] | |
push: | |
branches: | |
- 'main' | |
- 'new-chain' | |
- 'v*' | |
tags: | |
- 'v*' | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
branches: | |
- 'main' | |
- 'new-chain' | |
- 'v*' | |
paths-ignore: | |
- '**.md' | |
jobs: | |
linux: | |
runs-on: ubuntu-20.04 | |
steps: | |
# Checkout code | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
# Install GoLang | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ^1.21 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.41.2 | |
# Set up GoLang cache | |
- name: Go Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
# Install Wails build deps | |
- run: sudo apt-get update && sudo apt-get install libgtk-3-0 libwebkit2gtk-4.0-dev | |
- run: go install github.com/wailsapp/wails/v2/cmd/wails@latest | |
- name: Build | |
run: | | |
make server-linux | |
wails build --platform linux/amd64 -webview2 embed | |
- run: chmod +x build/bin/lethean-desktop | |
- name: 'Tar files' | |
run: cd build/bin/ && tar -cvf ../../linux-lethean-desktop.tar . | |
# uploads the job file, makes no release | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Linux Desktop | |
path: linux-lethean-desktop.tar | |
# if this is a tag build, upload | |
- name: Release Tag | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: linux-lethean-desktop.tar | |
- name: Release Branch | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/heads/main') | |
with: | |
tag_name: canary | |
prerelease: true | |
files: linux-lethean-desktop.tar | |
macos: | |
runs-on: macos-latest | |
steps: | |
# Checkout code | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
# Install GoLang | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ^1.21 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.41.2 | |
# Set up GoLang cache | |
- name: Go Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/Library/Caches/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- run: | | |
go install github.com/wailsapp/wails/v2/cmd/wails@latest | |
brew install mitchellh/gon/gon | |
- name: Build | |
run: | | |
make server-macos | |
wails build --platform darwin/amd64 -webview2 embed | |
- name: chmod +x exe | |
run: chmod +x build/bin/lethean.app/Contents/MacOS/lethean | |
- name: MacOS Extras | |
working-directory: ./build/bin/lethean.app | |
run: | | |
wget https://github.com/letheanVPN/blockchain-iTw3/releases/latest/download/lethean-gui-bundle-macos-testnet-i386.tar.bz2 | |
tar -xjf lethean-gui-bundle-macos-testnet-i386.tar.bz2 | |
rm lethean-gui-bundle-macos-testnet-i386.tar.bz2 | |
- name: Zip .app | |
working-directory: ./build/bin | |
run: | | |
ditto -c -k --keepParent ./lethean.app ./lethean.app.zip | |
# - name: Import Code-Signing Certificates for macOS | |
# if: startsWith(github.ref, 'refs/tags/') | |
# uses: Apple-Actions/import-codesign-certs@v1 | |
# with: | |
# keychain-password: ${{ secrets.APPLE_PASSWORD }} | |
# p12-file-base64: ${{ secrets.MAC_DEVELOPER_CERT }} | |
# p12-password: ${{ secrets.MAC_DEVELOPER_PASS }} | |
# - name: Import Code-Signing Certificates for macOS | |
# if: startsWith(github.ref, 'refs/tags/') | |
# uses: Apple-Actions/import-codesign-certs@v1 | |
# with: | |
# keychain-password: ${{ secrets.APPLE_PASSWORD }} | |
# p12-file-base64: ${{ secrets.MAC_DEVELOPER_INSTALL_CERT }} | |
# p12-password: ${{ secrets.MAC_DEVELOPER_INSTALL_PASS }} | |
# create-keychain: false | |
# - name: Sign our macOS binary | |
# if: startsWith(github.ref, 'refs/tags/') | |
# env: | |
# APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} | |
# run: | | |
# echo "Signing Package" | |
# gon -log-level=info ./build/darwin/gon-sign.json | |
# echo "Building Zip file" | |
# ditto -c -k --keepParent ./build/bin/lethean.app ./build/bin/lethean.app.zip | |
# echo "Building Installer" | |
# productbuild --sign 'Developer ID Installer: Lethean LTD (W2DNA5L5DY)' --component ./build/bin/lethean.app ./build/bin/lethean.pkg | |
# echo "notarising Installer and zip" | |
# gon -log-level=info ./build/darwin/gon-notarize.json | |
# uploads the job file, makes no release | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: macOS Universal Desktop | |
path: build/bin/lethean.app.zip | |
# if this is a tag build, upload | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
build/bin/lethean.app.zip | |
macos-m1: | |
runs-on: macos-latest | |
steps: | |
# Checkout code | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
# Install GoLang | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ^1.21 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.41.2 | |
# Set up GoLang cache | |
- name: Go Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/Library/Caches/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- run: | | |
go install github.com/wailsapp/wails/v2/cmd/wails@latest | |
brew install mitchellh/gon/gon | |
- name: Build | |
run: | | |
make server-macos-m1 | |
wails build --platform darwin/arm64 -webview2 embed | |
- name: chmod +x exe | |
run: chmod +x build/bin/lethean.app/Contents/MacOS/lethean | |
- name: MacOS Extras | |
working-directory: ./build/bin/lethean.app | |
run: | | |
wget https://github.com/letheanVPN/blockchain-iTw3/releases/latest/download/lethean-gui-bundle-macos-testnet-i386.tar.bz2 | |
tar -xjf lethean-gui-bundle-macos-testnet-i386.tar.bz2 | |
rm lethean-gui-bundle-macos-testnet-i386.tar.bz2 | |
- name: Zip .app | |
working-directory: ./build/bin | |
run: | | |
ditto -c -k --keepParent ./lethean.app ./lethean.app.zip | |
# - name: Import Code-Signing Certificates for macOS | |
# if: startsWith(github.ref, 'refs/tags/') | |
# uses: Apple-Actions/import-codesign-certs@v1 | |
# with: | |
# keychain-password: ${{ secrets.APPLE_PASSWORD }} | |
# p12-file-base64: ${{ secrets.MAC_DEVELOPER_CERT }} | |
# p12-password: ${{ secrets.MAC_DEVELOPER_PASS }} | |
# - name: Import Code-Signing Certificates for macOS | |
# if: startsWith(github.ref, 'refs/tags/') | |
# uses: Apple-Actions/import-codesign-certs@v1 | |
# with: | |
# keychain-password: ${{ secrets.APPLE_PASSWORD }} | |
# p12-file-base64: ${{ secrets.MAC_DEVELOPER_INSTALL_CERT }} | |
# p12-password: ${{ secrets.MAC_DEVELOPER_INSTALL_PASS }} | |
# create-keychain: false | |
# - name: Sign our macOS binary | |
# if: startsWith(github.ref, 'refs/tags/') | |
# env: | |
# APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} | |
# run: | | |
# echo "Signing Package" | |
# gon -log-level=info ./build/darwin/gon-sign.json | |
# echo "Building Zip file" | |
# ditto -c -k --keepParent ./build/bin/lethean.app ./build/bin/lethean.app.zip | |
# echo "Building Installer" | |
# productbuild --sign 'Developer ID Installer: Lethean LTD (W2DNA5L5DY)' --component ./build/bin/lethean.app ./build/bin/lethean.pkg | |
# echo "notarising Installer and zip" | |
# gon -log-level=info ./build/darwin/gon-notarize.json | |
# uploads the job file, makes no release | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: macOS Universal Desktop | |
path: build/bin/lethean.app.zip | |
# if this is a tag build, upload | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
build/bin/lethean.app.zip | |
windows: | |
runs-on: windows-2022 | |
steps: | |
# Checkout code | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
# Install GoLang | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: ^1.21 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.41.2 | |
# Set up GoLang cache | |
- name: Go Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
%LocalAppData%\go-build | |
~\go\pkg\mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Eat the Choco | |
run: | | |
choco install zip -y | |
- run: go install github.com/wailsapp/wails/v2/cmd/wails@latest | |
- name: Build | |
run: | | |
make server-windows | |
wails build --platform windows/amd64 -webview2 embed | |
- name: package | |
working-directory: ${{ github.workspace }}/build/bin | |
run: | | |
iwr -outf lethean-gui-bundle-win-testnet-x64.zip https://github.com/letheanVPN/blockchain-iTw3/releases/latest/download/lethean-gui-bundle-win-testnet-x64.zip | |
unzip -d . lethean-gui-bundle-win-testnet-x64.zip | |
rm lethean-gui-bundle-win-testnet-x64.zip | |
zip -r ${{ github.workspace }}/testnet-lethean-desktop-windows-amd64.zip * | |
# uploads the job file, makes no release | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Windows Desktop | |
if-no-files-found: error | |
path: | | |
${{ github.workspace }}/testnet-lethean-desktop-windows-amd64.zip | |
# if this is a tag build, upload | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
testnet-lethean-desktop-windows-amd64.zip |