Skip to content

Update build-all-and-release.yml #30

Update build-all-and-release.yml

Update build-all-and-release.yml #30

name: '[Full Build - Linux, Windows, MacOS]'
on: [push]
jobs:
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- name: git config credential.helper
run: git config credential.helper
- name: Brew install base dependencies
run: brew install automake berkeley-db4 libtool boost@1.76 miniupnpc qt@5 openssl pkg-config python libevent qrencode librsvg && curl -L https://raw.githubusercontent.com/udalov/protobuf261/master/protobuf261.rb > protobuf261.rb && brew install protobuf261.rb
- name: Brew link dependencies
run: brew link boost@1.76 qt@5 berkeley-db4
- name: Auto generate
run: ./autogen.sh
- name: configure
run: ./configure --disable-bench --disable-tests --disable-dependency-tracking --disable-werror --with-gui --bindir=`pwd`/release/bin --libdir=`pwd`/release/lib
- name: make
run: make -j4
- name: make check
run: make check -j4
- name: make .dmg
run: make deploy
- name: zip .dmg
run: zip verge-macos.zip /Users/runner/work/verge/verge/verge-qt.dmg
- name: get SHA
run: echo ${{ github.sha }} > Release.txt
- uses: actions/upload-artifact@v4
with:
name: verge-macos.zip
path: |
*.txt
*.zip
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Update apt repos
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils libattr1-dev make automake bison byacc cmake curl g++-multilib binutils-gold bison byacc python3
- name: Build depends
run: cd depends/ && make -j4 HOST=x86_64-linux-gnu
- name: Auto generate
run: ./autogen.sh
- name: configure
run: ./configure --disable-bench --disable-tests --disable-dependency-tracking --disable-werror --prefix=`pwd`/depends/x86_64-linux-gnu --bindir=`pwd`/release/bin --libdir=`pwd`/release/lib
- name: make
run: make -j4
- name: make check
run: make check -j4
- name: zip binaries
run: zip verge-linux.zip ./src/verged ./src/verge-cli ./src/verge-tx ./src/qt/verge-qt
- name: get SHA
run: echo ${{ github.sha }} > Release.txt
- uses: actions/upload-artifact@v4
with:
name: verge-linux.zip
path: |
*.txt
*.zip
windows:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Update apt repos
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git bison byacc python3 nsis
- name: Force Posix
run: sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev && sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
- name: Build depends for MingW32 Cross Compile
run: PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') && cd depends/ && make HOST=i686-w64-mingw32 -j2
- name: Auto generate
run: ./autogen.sh
- name: configure
run: CONFIG_SITE=$PWD/depends/i686-w64-mingw32/share/config.site ./configure --prefix=/ --disable-bench --disable-tests
- name: make
run: make -j2
- name: zip up GUI Wallet and CLI utils
run: zip verge-windows.zip /home/runner/work/verge/verge/src/verged.exe /home/runner/work/verge/verge/src/verge-cli.exe /home/runner/work/verge/verge/src/verge-tx.exe /home/runner/work/verge/verge/src/qt/verge-qt.exe
- name: get SHA
run: echo ${{ github.sha }} > Release.txt
- uses: actions/upload-artifact@v4
with:
name: verge-windows.zip
path: |
*.txt
*.zip
SendReleases:
runs-on: ubuntu-latest
needs: [macos, linux, windows]
steps:
- name: Generate Changelog
run: echo "# Changelog" > ${{ github.workspace }}-CHANGELOG.txt
- name: version
run: echo "::set-output name=version::${{ github.ref }}"
id: version
- name: create release
uses: actions/create-release@v1
id: create_release
with:
draft: false
prerelease: false
release_name: ${{ steps.version.outputs.version }}
tag_name: ${{ github.ref }}
body_path: ${{ github.workspace }}-CHANGELOG.txt
env:
GITHUB_TOKEN: ${{ github.token }}
- name: push zips to release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
verge-macos.zip
verge-windows.zip
verge-linux.zip