Skip to content

Update windows.yml #161

Update windows.yml

Update windows.yml #161

Workflow file for this run

name: Build check
on:
push:
branches:
- "**"
tags-ignore:
- "*" # We don't want this to run on release
pull_request:
jobs:
build-windows:
name: Windows
runs-on: windows-2019
env:
BOOST_ROOT: C:/tools/boost/x86_64
steps:
- uses: actions/checkout@v2
- name: Setup msbuild
uses: microsoft/setup-msbuild@v1.0.2
- name: Install Boost
shell: powershell
run: |
echo "${env:BOOST_ROOT}"
$Url = "https://sourceforge.net/projects/boost/files/boost-binaries/1.72.0/boost_1_72_0-msvc-14.2-64.exe"
(New-Object System.Net.WebClient).DownloadFile($Url, "$env:TEMP\boost.exe")
Start-Process -Wait -FilePath "$env:TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=${env:BOOST_ROOT}"
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
host: "windows"
target: "desktop"
modules: "qttools5 qtcharts"
install-deps: "true"
- name: Clone fuego
shell: powershell
run: |
Remove-Item cryptonote -Recurse -Force -ErrorAction Ignore
git clone -b master https://github.com/usexfg/fuego.git cryptonote
- name: Pre-build setup
shell: powershell
run: |
$search = "set\(CN_VERSION "
$xfg_version = ((Get-Content CryptoNoteWallet.cmake | Select-String $search) | %{$_ -replace $search, ""}) | %{$_ -replace "\)", ""}
$xfg_version = $xfg_version + ".0"
# Update "CMakeLists.txt" with cmake dir
$qt5_cmake = "${{ env.Qt5_Dir }}/lib/cmake" -replace '[/]', '\\'
$file = "CMakeLists.txt"
$find = '^set\(CMAKE_PREFIX_PATH.+'
$replace = "set(CMAKE_PREFIX_PATH `"$($qt5_cmake)`")"
(Get-Content $file) | %{$_ -replace $find, $replace} | Set-Content $file
# Update FuegoWallet.nsi with the current version
$file = "FuegoWallet.nsi"
$find = "^!define VERSION.+"
$replace = "!define VERSION '$xfg_version.0'"
(Get-Content $file) | %{$_ -replace $find, $replace} | Set-Content $file
- name: Build
shell: powershell
id: build
run: |
$build_folder = "build"
$release_folder = "Release"
$sha = "${{ github.sha }}"
$xfg_version = $sha.SubString(0,7)
$release_name = "fuego-desktop-win64-dev-$xfg_version"
New-Item "$build_folder\$release_folder" -ItemType Directory
cd "$build_folder"
cmake -G "Visual Studio 16 2019" ..
msbuild Fuego-Wallet.sln /p:Configuration=Release /m:2
echo "build_folder=${build_folder}" >> $env:GITHUB_OUTPUT
echo "release_folder=${release_folder}" >> $env:GITHUB_OUTPUT
echo "release_name=${release_name}" >> $env:GITHUB_OUTPUT
- name: Pack
shell: powershell
id: pack
run: |
$build_folder = "${{ steps.build.outputs.build_folder }}"
$release_name = "${{ steps.build.outputs.release_name }}"
$release_folder = "${{ steps.build.outputs.release_folder }}"
cd "$build_folder/$release_folder"
mkdir "Final"
choco install openssl -y
cp "C:\Program Files\OpenSSL-Win64\libcrypto*.dll" "Final/"
cp "C:\Program Files\OpenSSL-Win64\libssl*.dll" "Final/"
windeployqt --release Fuego-Wallet.exe --dir "Final/" --no-translations --no-opengl-sw
cd ../../
makensis FuegoWallet.nsi
cd "$build_folder/$release_folder"
Compress-Archive -Path FUEGO-Setup.exe -DestinationPath "$release_name.zip"
$artifact_path = "$build_folder/$release_folder/$release_name.zip"
echo "artifact_path=${artifact_path}" >> $env:GITHUB_OUTPUT
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build.outputs.release_name }}
path: ${{ steps.pack.outputs.artifact_path }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-ubuntu20:
name: Ubuntu 20.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt update -y
sudo apt install -y qt5-default qttools5-dev qttools5-dev-tools libqt5charts5-dev libboost-all-dev git
- name: Clone fuego
run: |
rm -rf cryptonote
git clone -b master https://github.com/usexfg/fuego.git cryptonote
- name: Build
id: build
run: |
xfg_version=${GITHUB_SHA::7}
release_name=fuego-desktop-ubuntu-2004-dev-"$xfg_version"
make -j4 build-release
mkdir $release_name
mkdir -p $release_name/icon
mv build/release/Fuego-Wallet $release_name
cp fuego-desktop.desktop $release_name
cp src/images/fuego.png $release_name/icon
tar -czf "$release_name".tar.gz "$release_name"
echo "release_name=${release_name}" >> $GITHUB_OUTPUT
echo "artifact_path=${release_name}.tar.gz" >> $GITHUB_OUTPUT
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build.outputs.release_name }}
path: ${{ steps.build.outputs.artifact_path }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-macos:
name: macOS
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
modules: "qtcharts"
- name: Install dependencies
run: |
brew install boost
- name: Clone fuego
run: |
rm -rf cryptonote
git clone -b master https://github.com/usexfg/fuego.git cryptonote
- name: Build
id: build
run: |
build_folder="build/release"
xfg_ver=${GITHUB_SHA::7}
release_name="fuego-desktop-macOS-dev-$xfg_ver"
app_name="Fuego-Wallet.app"
make -j4 build-release
cd "$build_folder"
macdeployqt "$app_name"
cpack
mkdir "$release_name"
mv *.dmg "$release_name".dmg
mv "$release_name".dmg "$release_name"
echo "release_name::${release_name}" >> $GITHUB_OUTPUT
echo "artifact_path=${build_folder}/${release_name}" >> $GITHUB_OUTPUT
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build.outputs.release_name }}
path: ${{ steps.build.outputs.artifact_path }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-macos-11:
name: macOS-11
runs-on: macos-11
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
brew install boost qt@5
- name: Clone fuego
run: |
rm -rf cryptonote
git clone -b master https://github.com/usexfg/fuego.git cryptonote
- name: Build
id: build
run: |
export PATH="/usr/local/opt/qt@5/bin:$PATH"
build_folder="build/release"
xfg_ver=${GITHUB_SHA::7}
release_name="fuego-desktop-macOS11-$xfg_ver"
app_name="Fuego-Wallet.app"
make -j4 build-release
cd "$build_folder"
macdeployqt "$app_name"
cpack
mkdir "$release_name"
mv *.dmg "$release_name".dmg
mv "$release_name".dmg "$release_name"
echo "release_name=${release_name}" >> $GITHUB_OUTPUT
echo "artifact_path=${build_folder}/${release_name}" >> $GITHUB_OUTPUT
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ steps.build.outputs.release_name }}
path: ${{ steps.build.outputs.artifact_path }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}