This repository has been archived by the owner on Nov 4, 2024. It is now read-only.
Bypass potential transaction table model update bug #29
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 | |
on: | |
pull_request: | |
push: | |
branches: | |
- "master" | |
workflow_dispatch: | |
jobs: | |
build-linux: | |
name: Build Linux binaries | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: install Linux deps | |
run: sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3 | |
- uses: actions/checkout@v3 | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ./depends | |
key: linux-${{ hashFiles('depends/packages/**') }} | |
- name: download dependencies | |
run: make -C ./depends download-linux | |
- name: build dependencies | |
run: make -C ./depends -j4 | |
- run: ./autogen.sh | |
- run: echo "CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site" >> $GITHUB_ENV | |
- run: ./configure | |
- run: make -j4 | |
- name: 'Set environment variables: version number' | |
run: | | |
MAINCHAIN_VERSION=$(grep -oP "(?<=^PACKAGE_VERSION=').+(?='$)" configure) | |
echo "MAINCHAIN_VERSION=$MAINCHAIN_VERSION" >> "$GITHUB_ENV" | |
- name: move qt binary before uploading artifacts | |
run: mv src/qt/drivechain-qt src/drivechain-qt | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: mainchain-${{ env.MAINCHAIN_VERSION }}-x86_64-unknown-linux-gnu | |
if-no-files-found: error | |
path: | | |
src/drivechaind | |
src/drivechain-cli | |
src/drivechain-qt | |
build-windows: | |
name: Build Windows binaries | |
runs-on: ubuntu-20.04 | |
steps: | |
# g++-mingw-w64-x86-64 is the cross-compiling toolchain needed for | |
# producing Windows binaries | |
# | |
# python3 line is needed to make `python` resolve to `python3` | |
- name: install deps | |
run: | | |
sudo apt install g++-mingw-w64-x86-64 \ | |
build-essential libtool autotools-dev automake \ | |
libssl-dev libevent-dev \ | |
pkg-config bsdmainutils curl git \ | |
python3-setuptools python-is-python3 \ | |
- name: configure the Windows toolchain | |
run: sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix | |
- uses: actions/checkout@v3 | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ./depends | |
key: windows-${{ hashFiles('depends/packages/**') }} | |
- name: download dependencies | |
run: make -C ./depends download-win | |
- name: build dependencies | |
run: make -C ./depends HOST=x86_64-w64-mingw32 -j4 | |
- run: ./autogen.sh | |
- run: echo "CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site" >> $GITHUB_ENV | |
- run: ./configure | |
- run: make -j4 | |
- name: 'Set environment variables: version number' | |
run: | | |
MAINCHAIN_VERSION=$(grep -oP "(?<=^PACKAGE_VERSION=').+(?='$)" configure) | |
echo "MAINCHAIN_VERSION=$MAINCHAIN_VERSION" >> "$GITHUB_ENV" | |
- name: move qt binary before uploading artifacts | |
run: mv src/qt/drivechain-qt.exe src/drivechain-qt.exe | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: mainchain-${{ env.MAINCHAIN_VERSION }}-x86_64-w64-mingw32 | |
if-no-files-found: error | |
path: | | |
src/drivechaind.exe | |
src/drivechain-cli.exe | |
src/drivechain-qt.exe | |
build-macos: | |
name: Build macOS binaries | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ./depends | |
key: macos-${{ hashFiles('depends/packages/**') }} | |
- name: download dependencies | |
run: make -C ./depends download-osx | |
- name: Run build in Docker | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: barebitcoin/testchain-macos-builder | |
options: -v ${{ github.workspace }}:/testchain --workdir=/testchain | |
shell: bash | |
run: | | |
set -e | |
make -C depends -j4 | |
export CONFIG_SITE=$PWD/depends/x86_64-apple-darwin11/share/config.site | |
./autogen.sh | |
./configure | |
make -j4 # Limit the concurrency to prevent OOM | |
- name: 'Set environment variables: version number' | |
run: | | |
MAINCHAIN_VERSION=$(grep -oP "(?<=^PACKAGE_VERSION=').+(?='$)" configure) | |
echo "MAINCHAIN_VERSION=$MAINCHAIN_VERSION" >> "$GITHUB_ENV" | |
- name: move qt binary before uploading artifacts | |
run: mv src/qt/drivechain-qt src/drivechain-qt | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: mainchain-${{ env.MAINCHAIN_VERSION }}-x86_64-apple-darwin11 | |
if-no-files-found: error | |
path: | | |
src/drivechaind | |
src/drivechain-cli | |
src/drivechain-qt | |
upload-artifacts-to-releases-drivechain-info: | |
name: Upload artifacts to releases.drivechain.info | |
runs-on: ubuntu-latest | |
needs: [build-linux, build-macos, build-windows] | |
if: github.repository_owner == 'LayerTwo-Labs' | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
- name: Zip artifacts | |
run: | | |
mv mainchain-*-x86_64-apple-darwin11 L1-Mainchain-latest-x86_64-apple-darwin | |
zip -r L1-Mainchain-latest-x86_64-apple-darwin.zip L1-Mainchain-latest-x86_64-apple-darwin | |
mv mainchain-*-x86_64-w64-mingw32 L1-Mainchain-latest-x86_64-w64-mingw32 | |
zip -r L1-Mainchain-latest-x86_64-w64-mingw32.zip L1-Mainchain-latest-x86_64-w64-mingw32 | |
mv mainchain-*-x86_64-unknown-linux-gnu L1-Mainchain-latest-x86_64-unknown-linux-gnu | |
zip -r L1-Mainchain-latest-x86_64-unknown-linux-gnu.zip L1-Mainchain-latest-x86_64-unknown-linux-gnu | |
- name: Upload artifacts to releases.drivechain.info | |
uses: cross-the-world/ssh-scp-ssh-pipelines@latest | |
with: | |
host: 45.33.96.47 | |
user: root | |
pass: ${{ secrets.RELEASES_SERVER_PW }} | |
port: 22 | |
scp: | | |
'L1-Mainchain-latest-*.zip' => '/var/www/html/' |