[Github actions] Updated actions #739
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
# Copyright (c) 2018-2019 The Veil developers | |
# Distributed under the MIT software license, see the accompanying | |
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | |
name: Github Actions CI for Veil | |
on: [push, pull_request] | |
env: | |
SOURCE_ARTIFACT: source | |
jobs: | |
create-source-distribution: | |
name: Create Source Distribution | |
runs-on: ubuntu-20.04 | |
env: | |
ARTIFACT_DIR: source | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Needs qt and protobuf to configure qt and include veil-qt.1 in distribution | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y libboost-all-dev libdb-dev libdb++-dev libevent-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler | |
- name: Create Distribution Tarball | |
run: | | |
./autogen.sh | |
./configure --with-incompatible-bdb | |
make dist | |
- name: Download Dependencies | |
run: make -C depends download | |
- name: Create Dependencies Tarball | |
run: tar -czf depends.tar.gz depends | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
mv depends.tar.gz veil-*.tar.gz $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.ARTIFACT_DIR }} | |
build-x86_64-linux: | |
name: Build for x86 Linux 64bit | |
needs: create-source-distribution | |
runs-on: ubuntu-20.04 | |
env: | |
ARTIFACT_DIR: x86_64-linux-binaries | |
TEST_LOG_ARTIFACT_DIR: test-logs | |
steps: | |
- name: Getting Source | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.SOURCE_ARTIFACT }} | |
- name: Extract Archives | |
run: | | |
tar -xzf depends.tar.gz | |
tar -xzf veil-*.tar.gz --strip-components=1 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y python3-zmq | |
- name: Build Dependencies | |
run: make -C depends -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Veil | |
run: | | |
./configure --disable-jni --enable-tests --with-comparison-tool=no --prefix=$(realpath depends/x86_64-pc-linux-gnu) | |
make -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} | |
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.ARTIFACT_DIR }} | |
path: ${{ env.ARTIFACT_DIR }} | |
build-win64: | |
name: Build for Win64 | |
needs: create-source-distribution | |
runs-on: ubuntu-20.04 | |
env: | |
ARTIFACT_DIR: win64-binaries | |
steps: | |
- name: Getting Source | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.SOURCE_ARTIFACT }} | |
- name: Extract Archives | |
run: | | |
tar -xzf depends.tar.gz | |
tar -xzf veil-*.tar.gz --strip-components=1 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 | |
- name: Switch MinGW GCC and G++ to POSIX Threading | |
run: | | |
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix | |
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix | |
- name: Build Dependencies | |
run: make -C depends -j$(nproc) HOST=x86_64-w64-mingw32 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Veil | |
run: | | |
./configure --disable-jni --prefix=$(realpath depends/x86_64-w64-mingw32) | |
make -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
strip $SOURCE_ARTIFACT/src/{veil-cli.exe,veil-tx.exe,veild.exe,qt/veil-qt.exe} | |
mv $SOURCE_ARTIFACT/src/{veil-cli.exe,veil-tx.exe,veild.exe,qt/veil-qt.exe} $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.ARTIFACT_DIR }} | |
path: ${{ env.ARTIFACT_DIR }} | |
build-osx64: | |
name: Build for MacOSX | |
needs: create-source-distribution | |
runs-on: ubuntu-20.04 | |
env: | |
ARTIFACT_DIR: macosx-binaries | |
steps: | |
- name: Getting Source | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.SOURCE_ARTIFACT }} | |
- name: Extract Archives | |
run: | | |
tar -xzf depends.tar.gz | |
tar -xzf veil-*.tar.gz --strip-components=1 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y python3-setuptools libcap-dev zlib1g-dev cmake | |
sudo -H pip install setuptools | |
- name: Get macOS SDK | |
run: | | |
mkdir -p depends/sdk-sources | |
mkdir -p depends/SDKs | |
curl https://bitcoincore.org/depends-sources/sdks/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz -o depends/sdk-sources/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz | |
tar -C depends/SDKs -xf depends/sdk-sources/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Dependencies | |
run: make -C depends HOST=x86_64-apple-darwin18 -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Veil | |
run: | | |
./configure --enable-c++17 --disable-jni --prefix=$(realpath depends/x86_64-apple-darwin18) | |
make -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
# strip fails with "Unable to recognise the format of the input file" | |
#strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} | |
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.ARTIFACT_DIR }} | |
path: ${{ env.ARTIFACT_DIR }} | |
build-aarch64-linux: | |
name: Build for ARM Linux 64bit | |
needs: create-source-distribution | |
runs-on: ubuntu-20.04 | |
env: | |
ARTIFACT_DIR: aarch64-linux-binaries | |
steps: | |
- name: Getting Source | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.SOURCE_ARTIFACT }} | |
- name: Extract Archives | |
run: | | |
tar -xzf depends.tar.gz | |
tar -xzf veil-*.tar.gz --strip-components=1 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y python3-zmq libcap-dev cmake g++-aarch64-linux-gnu | |
- name: Build Dependencies | |
run: make -C depends HOST=aarch64-linux-gnu -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Veil | |
run: | | |
./configure --disable-jni --prefix=$(realpath depends/aarch64-linux-gnu) | |
make -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
# strip fails with "Unable to recognise the format of the input file" | |
# strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} | |
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.ARTIFACT_DIR }} | |
path: ${{ env.ARTIFACT_DIR }} | |
build-arm-linux-gnueabihf: | |
name: Build for ARM Linux 32bit | |
needs: create-source-distribution | |
runs-on: ubuntu-20.04 | |
env: | |
ARTIFACT_DIR: arm32-binaries | |
steps: | |
- name: Getting Source | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.SOURCE_ARTIFACT }} | |
- name: Extract Archives | |
run: | | |
tar -xzf depends.tar.gz | |
tar -xzf veil-*.tar.gz --strip-components=1 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y g++-arm-linux-gnueabihf libgmp-dev | |
- name: Build Dependencies | |
run: make -C depends -j$(nproc) HOST=arm-linux-gnueabihf | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Veil | |
run: | | |
./configure --disable-jni --prefix=$(realpath depends/arm-linux-gnueabihf) --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++ | |
make -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
# strip fails with "Unable to recognise the format of the input file" | |
# strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} | |
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.ARTIFACT_DIR }} | |
path: ${{ env.ARTIFACT_DIR }} | |
build-i686-linux32: | |
name: Build for x86 Linux 32bit | |
needs: create-source-distribution | |
runs-on: ubuntu-20.04 | |
env: | |
ARTIFACT_DIR: i686-linux32-binaries | |
steps: | |
- name: Getting Source | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.SOURCE_ARTIFACT }} | |
- name: Extract Archives | |
run: | | |
tar -xzf depends.tar.gz | |
tar -xzf veil-*.tar.gz --strip-components=1 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y python3-zmq gcc-multilib g++-multilib | |
- name: Build Dependencies | |
run: make -C depends -j$(nproc) HOST=i686-linux-gnu | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Veil | |
run: | | |
./configure --disable-jni --prefix=$(realpath depends/i686-linux-gnu) | |
make -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} | |
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.ARTIFACT_DIR }} | |
path: ${{ env.ARTIFACT_DIR }} | |
build-riscv64-linux: | |
name: Build for RISCV Linux 64bit | |
needs: create-source-distribution | |
runs-on: ubuntu-22.04 | |
env: | |
ARTIFACT_DIR: riscv64-linux-binaries | |
steps: | |
- name: Getting Source | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.SOURCE_ARTIFACT }} | |
path: ${{ env.SOURCE_ARTIFACT }} | |
- name: Extract Archives | |
run: | | |
tar -xzf depends.tar.gz | |
tar -xzf veil-*.tar.gz --strip-components=1 | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Install Required Packages | |
run: | | |
sudo apt update | |
sudo apt install -y python3-zmq libcap-dev cmake g++-riscv64-linux-gnu | |
- name: Build Dependencies | |
run: make -C depends NO_QR=1 NO_QT=1 HOST=riscv64-linux-gnu -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Build Veil | |
run: | | |
./configure --disable-jni --without-gui --prefix=$(realpath depends/riscv64-linux-gnu) | |
make -j$(nproc) | |
working-directory: ${{ env.SOURCE_ARTIFACT }} | |
- name: Prepare Files for Artifact | |
run: | | |
mkdir -p $ARTIFACT_DIR | |
# strip fails with "Unable to recognise the format of the input file" | |
# strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild} | |
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild} $ARTIFACT_DIR | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.ARTIFACT_DIR }} | |
path: ${{ env.ARTIFACT_DIR }} |