Skip to content

test

test #1151

Workflow file for this run

name: ci/gh-actions/gui
on: [push, pull_request]
env:
FREE_DISKSPACE: |
sudo rm -rf /usr/local/.ghcup /usr/share/dotnet /usr/share/swift /usr/share/miniconda /usr/local/lib/android /opt/hostedtoolcache
jobs:
build-macos:
if: false
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: install dependencies
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost ccache hidapi openssl zmq libsodium miniupnpc unbound libunwind-headers protobuf qt pkg-config
- name: build
run: DEV_MODE=ON make release -j3
- name: test qml
run: build/release/bin/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui --test-qml
build-ubuntu:
if: false
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: remove bundled boost
run: sudo rm -rf /usr/local/share/boost
- name: set apt conf
run: |
echo "Acquire::Retries \"3\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::http::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::ftp::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
- name: update apt
run: sudo apt update
- name: install monero dependencies
run: sudo apt -y install build-essential ccache cmake libboost-all-dev miniupnpc libunbound-dev libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libgcrypt20-dev qt6-base-dev qt6-declarative-dev qt6-svg-dev qt6-tools-dev qt6-tools-dev-tools qml6-module-qtcore qml6-module-qtqml qml6-module-qtqml-models qml6-module-qtquick qml6-module-qtquick-controls qml6-module-qtquick-dialogs qml6-module-qtquick-effects qml6-module-qtquick-layouts qml6-module-qtquick-shapes qml6-module-qtquick-window qml6-module-qt-labs-folderlistmodel qml6-module-qt-labs-platform
- name: build
run: DEV_MODE=ON make release -j4
- name: test qml
env:
QT_QPA_PLATFORM: offscreen
QT_QUICK_BACKEND: software
run: build/release/bin/monero-wallet-gui --test-qml
build-windows:
if: false
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- uses: eine/setup-msys2@v2
with:
msystem: ucrt64
update: true
install: make
pacboy: toolchain:p ccache:p pcre:p cmake:p boost:p openssl:p zeromq:p libsodium:p hidapi:p protobuf:p libusb:p unbound:p git qt6-base:p qt6-declarative:p qt6-svg:p qt6-tools:p libgcrypt:p
- name: add qmlimportscanner.exe
run: cp -f "$MSYSTEM_PREFIX/share/qt6/bin/qmlimportscanner.exe" "$MSYSTEM_PREFIX/bin/qmlimportscanner.exe"
- name: configure
run: cmake -S . -B build/ci -G "MSYS Makefiles" -DDEV_MODE=ON -DWITH_SCANNER=OFF -DARCH=x86-64 -DBUILD_64=ON -DBUILD_TAG=win-x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: build
run: DEV_MODE=ON make release-win64 -j4
- name: deploy
run: make deploy
working-directory: build/release
- name: test qml
run: build/release/bin/monero-wallet-gui --test-qml
macos-bundle:
if: false
name: macOS ${{ matrix.arch }} bundle
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- runner: macos-14
artifact_name: macos-armv8-bundle
archive_name: monero-wallet-gui-macos-armv8.tar.gz
arch: ARM
- runner: macos-15-intel
artifact_name: macos-x64-bundle
archive_name: monero-wallet-gui-macos-x64.tar.gz
arch: Intel
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: install dependencies
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost ccache hidapi libsodium miniupnpc ninja openssl pkg-config protobuf unbound zeromq aria2
- name: download Qt
run: mkdir qt6.8.3 && cd qt6.8.3 && python3 ../monero-gui/.github/qt_helper.py mac_x64 desktop 6.8.3 clang_64 c9cdbe2ad3d34cf6e675a7e6eaf5a16560a51305dd06aed97b8d93359b1b90fa
working-directory: ../
- name: configure
run: >
cmake -S . -B build -G Ninja
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_PREFIX_PATH="/Users/runner/work/monero-gui/qt6.8.3/"
-D CMAKE_OSX_DEPLOYMENT_TARGET="12.0"
-D ARCH=default
- name: build
run: cmake --build build
- name: deploy
run: cmake --build build --target deploy
- name: test qml
run: build/bin/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui --test-qml
- name: create archive
run: tar -C build/bin -czf "${{ matrix.archive_name }}" monero-wallet-gui.app
- uses: actions/upload-artifact@v7.0.1
with:
name: ${{ matrix.artifact_name }}
path: ${{ matrix.archive_name }}
archive: false
docker-linux-static:
if: false
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: free up diskspace
run: ${{env.FREE_DISKSPACE}}
- name: prepare build environment
run: docker build --tag monero:build-env-linux --build-arg THREADS=4 --file Dockerfile.linux .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -w /monero-gui monero:build-env-linux sh -c 'make depends root=/depends target=x86_64-linux-gnu tag=linux-x64 -j4'
- name: sha256sum
run: shasum -a256 /home/runner/work/monero-gui/monero-gui/build/x86_64-linux-gnu/release/bin/monero-wallet-gui
- name: install test dependencies
run: sudo apt -y install libopengl0 libegl1 libgl1
- name: test qml
env:
QT_QPA_PLATFORM: offscreen
QT_QUICK_BACKEND: software
run: /home/runner/work/monero-gui/monero-gui/build/x86_64-linux-gnu/release/bin/monero-wallet-gui --test-qml
- uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}
path: |
/home/runner/work/monero-gui/monero-gui/build/x86_64-linux-gnu/release/bin/monero-wallet-gui
/home/runner/work/monero-gui/monero-gui/build/x86_64-linux-gnu/release/bin/monerod
docker-windows-static:
if: false
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: free up disk space
run: ${{ env.FREE_DISKSPACE }}
- name: prepare build environment
run: docker build --tag monero:build-env-windows --build-arg THREADS=4 --file Dockerfile.windows .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -w /monero-gui monero:build-env-windows sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j4'
- name: sha256sum
run: shasum -a256 /home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monero-wallet-gui.exe
- uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}
path: |
/home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monero-wallet-gui.exe
/home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monerod.exe
docker-android:
if: false
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: free up diskspace
run: ${{env.FREE_DISKSPACE}}
- name: prepare build environment
run: docker build --tag monero:build-env-android --build-arg THREADS=4 --file Dockerfile.android .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -e THREADS=4 monero:build-env-android
- uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}
path: /home/runner/work/monero-gui/monero-gui/build/Android/release/android-build/monero-gui.apk
source-archive:
if: false
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: archive
run: |
pip install git-archive-all
export VERSION="monero-gui-$(git describe)"
export OUTPUT="$VERSION.tar"
echo "OUTPUT=$OUTPUT" >> $GITHUB_ENV
/home/runner/.local/bin/git-archive-all --prefix "$VERSION/" --force-submodules "$OUTPUT"
- uses: actions/upload-artifact@v4
with:
name: ${{ env.OUTPUT }}
path: /home/runner/work/monero-gui/monero-gui/${{ env.OUTPUT }}