test #3847
Workflow file for this run
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: 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 | |
jobs: | |
build-macos: | |
runs-on: macOS-latest | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: recursive | |
- name: install dependencies | |
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi openssl zmq libpgm libsodium miniupnpc expat libunwind-headers protobuf qt5 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: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
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 cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libnorm-dev libusb-1.0-0-dev libpgm-dev libprotobuf-dev protobuf-compiler | |
- name: install monero gui dependencies | |
run: sudo apt -y install qtbase5-dev qtdeclarative5-dev qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-xmllistmodel qml-module-qt-labs-settings qml-module-qt-labs-platform qml-module-qt-labs-folderlistmodel qttools5-dev-tools qml-module-qtquick-templates2 libqt5svg5-dev libgcrypt20-dev xvfb | |
- name: build | |
run: DEV_MODE=ON make release -j3 | |
- name: test qml | |
run: xvfb-run -a build/release/bin/monero-wallet-gui --test-qml | |
build-windows: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: recursive | |
- uses: eine/setup-msys2@v2 | |
with: | |
update: true | |
install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-pcre mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound git mingw-w64-x86_64-qt5 mingw-w64-x86_64-libgcrypt | |
- name: build | |
run: DEV_MODE=ON make release-win64 -j2 | |
- name: deploy | |
run: make deploy | |
working-directory: build/release | |
- name: test qml | |
run: build/release/bin/monero-wallet-gui --test-qml | |
macos-bundle: | |
runs-on: macOS-latest | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: recursive | |
- name: install dependencies | |
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi openssl zmq libpgm miniupnpc expat libunwind-headers protobuf pkg-config python3 p7zip aria2 | |
- name: install dependencies | |
run: pip3 install defusedxml | |
- name: download qt | |
run: python3 monero-gui/.github/qt_helper.py mac_x64 desktop 5.15.2 clang_64 c384008156fe63cc183bade0316828c598ff3e5074397c0c9ccc588d6cdc5aca | |
working-directory: ../ | |
- name: build | |
run: | | |
mkdir build && cd build | |
cmake -D CMAKE_BUILD_TYPE=Release -D ARCH=default -D CMAKE_PREFIX_PATH=/Users/runner/work/monero-gui/5.15.2/clang_64 .. | |
make | |
- name: deploy | |
run: make deploy | |
working-directory: build | |
- name: test qml | |
run: build/bin/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui --test-qml | |
- name: create .tar | |
run: tar -cf monero-wallet-gui.tar monero-wallet-gui.app | |
working-directory: build/bin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.job }} | |
path: build/bin/monero-wallet-gui.tar | |
docker-linux-static: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: recursive | |
- uses: satackey/[email protected] | |
if: "!startsWith(github.ref, 'refs/tags/v')" | |
continue-on-error: true | |
with: | |
key: docker-linux-static-{hash} | |
restore-keys: | | |
docker-linux-static- | |
- name: install dependencies | |
run: sudo apt -y install xvfb libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xkb1 libxcb-shape0 libxkbcommon-x11-0 | |
- name: free up diskspace | |
run: ${{env.FREE_DISKSPACE}} | |
- name: prepare build environment | |
run: docker build --tag monero:build-env-linux --build-arg THREADS=3 --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 release-static -j3' | |
- name: sha256sum | |
run: shasum -a256 /home/runner/work/monero-gui/monero-gui/build/release/bin/monero-wallet-gui | |
- name: test qml | |
run: xvfb-run -a /home/runner/work/monero-gui/monero-gui/build/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/release/bin/monero-wallet-gui | |
/home/runner/work/monero-gui/monero-gui/build/release/bin/monerod | |
docker-windows-static: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: recursive | |
- uses: satackey/[email protected] | |
if: "!startsWith(github.ref, 'refs/tags/v')" | |
continue-on-error: true | |
with: | |
key: docker-windows-static-{hash} | |
restore-keys: | | |
docker-windows-static- | |
- name: free up diskspace | |
run: ${{env.FREE_DISKSPACE}} | |
- name: prepare build environment | |
run: docker build --tag monero:build-env-windows --build-arg THREADS=3 --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 -j3' | |
- 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: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: recursive | |
- uses: satackey/[email protected] | |
if: "!startsWith(github.ref, 'refs/tags/v')" | |
continue-on-error: true | |
with: | |
key: docker-android-static-{hash} | |
restore-keys: | | |
docker-android-static- | |
- name: free up diskspace | |
run: ${{env.FREE_DISKSPACE}} | |
- name: prepare build environment | |
run: docker build --tag monero:build-env-android --build-arg THREADS=3 --file Dockerfile.android . | |
- name: build | |
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -e THREADS=3 monero:build-env-android | |
- name: Remove obsolete docker layers | |
run: docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi || true | |
- 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: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v1 | |
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 }} |