Skip to content

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

Update build-all-and-release.yml

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

name: '[Full Build - Linux (Ubuntu 20,22,24), Windows32, Windows64, MacOS]'
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
release:
types: [published]
jobs:
macos13:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: git config credential.helper
run: git config credential.helper
- name: Brew install base dependencies
run: |
brew install --quiet python@3 || brew link --overwrite python@3
brew install --quiet automake berkeley-db@4 boost@1.76 miniupnpc qt@5 gperf qrencode librsvg && curl -L https://raw.githubusercontent.com/vergecurrency/protobuf261/master/protobuf261.rb > protobuf261.rb && brew install protobuf261.rb
- name: Brew link dependencies
run: brew link boost@1.76 qt@5 berkeley-db@4
- 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 .dmg
run: make deploy
- uses: actions/upload-artifact@v4
with:
name: verge-macos13
path: |
*.dmg
ubuntu24:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Update apt repos
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install build-essential xutils-dev libtool gperf 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: CONFIG_SITE=$PWD/depends/x86_64-linux-gnu/share/config.site ./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
- uses: actions/upload-artifact@v4
with:
name: verge-ubuntu24
path: |
./src/verged
./src/verge-cli
./src/verge-tx
./src/qt/verge-qt
ubuntu22:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Update apt repos
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install build-essential xutils-dev libtool gperf 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: CONFIG_SITE=$PWD/depends/x86_64-linux-gnu/share/config.site ./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
- uses: actions/upload-artifact@v4
with:
name: verge-ubuntu22
path: |
./src/verged
./src/verge-cli
./src/verge-tx
./src/qt/verge-qt
ubuntu20:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Update apt repos
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install build-essential xutils-dev libtool gperf 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: CONFIG_SITE=$PWD/depends/x86_64-linux-gnu/share/config.site ./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
- uses: actions/upload-artifact@v4
with:
name: verge-ubuntu20
path: |
./src/verged
./src/verge-cli
./src/verge-tx
./src/qt/verge-qt
windows32:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Update apt repos
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install build-essential libtool gperf 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: strip
run: cd ./src && strip verged.exe verge-cli.exe verge-tx.exe && cd ./qt && strip verge-qt.exe
- uses: actions/upload-artifact@v4
with:
name: verge-windows32
path: |
/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
windows64:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Update apt repos
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install build-essential libtool gperf autotools-dev automake pkg-config bsdmainutils curl git bison byacc python3 nsis
- name: Force Posix
run: sudo apt install g++-mingw-w64-x86-64 && sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
- name: Build depends for MingW32 Cross Compile
run: PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') && cd depends/ && make HOST=x86_64-w64-mingw32 -j2
- name: Auto generate
run: ./autogen.sh
- name: configure
run: CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/ --disable-bench --disable-tests
- name: make
run: make -j2
- name: strip
run: cd ./src && strip verged.exe verge-cli.exe verge-tx.exe && cd ./qt && strip verge-qt.exe
- uses: actions/upload-artifact@v4
with:
name: verge-windows64
path: |
/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
SendReleases:
runs-on: ubuntu-latest
needs: [macos13, ubuntu20, ubuntu22, ubuntu24, windows32, windows64]
steps:
- name: Generate Changelog
run: echo "# Changelog" > ${{ github.workspace }}-CHANGELOG.txt
- uses: actions/download-artifact@v4
with:
name: verge-windows32
path: verge-windows32
- uses: actions/download-artifact@v4
with:
name: verge-windows64
path: verge-windows64
- uses: actions/download-artifact@v4
with:
name: verge-macos13
path: verge-macos13
- uses: actions/download-artifact@v4
with:
name: verge-ubuntu20
path: verge-ubuntu20
- uses: actions/download-artifact@v4
with:
name: verge-ubuntu22
path: verge-ubuntu22
- uses: actions/download-artifact@v4
with:
name: verge-ubuntu24
path: verge-ubuntu24
- name: Create zips
run: |
zip -r verge-windows32.zip verge-windows32/
zip -r verge-windows64.zip verge-windows64/
zip -r verge-macos13.zip verge-macos13/
zip -r verge-ubuntu20.zip verge-ubuntu20/
zip -r verge-ubuntu22.zip verge-ubuntu22/
zip -r verge-ubuntu24.zip verge-ubuntu24/
- name: List downloaded artifacts
run: ls -lR
- name: sha256
run: |
find . -type f -name "*.zip" | xargs sha256sum -b > SHA256SUMS.txt
cat SHA256SUMS.txt
- name: push zips to release
uses: softprops/action-gh-release@v2
with:
tag_name: v7.7.0
files: |
verge-windows32.zip
verge-windows64.zip
verge-macos13.zip
verge-ubuntu20.zip
verge-ubuntu22.zip
verge-ubuntu24.zip
SHA256SUMS.txt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}