USEXFG #167
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: 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-ubuntu22: | |
name: Ubuntu 22.04 | |
runs-on: ubuntu-22.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-2204-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 }} |