8000 update contrib native_ccache version · firoorg/firo@cd3fb34 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

update contrib native_ccache version #1943

update contrib native_ccache version

update contrib native_ccache version #1943

Workflow file for this run

8000
name: Continuous Integration on Master
on:
push:
paths-ignore:
- 'doc/**'
- '**/README.md'
branches:
- '**'
pull_request:
paths-ignore:
- 'doc/**'
- '**/README.md'
branches:
- master
env:
SOURCE_ARTIFACT: source
SOURCE_ARTIFACT_DIR: source
jobs:
create-source-distribution:
name: Create Source Distribution
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Required Packages
run: |
sudo apt-get update
sudo apt-get install -y libboost-all-dev libdb-dev libdb++-dev libevent-dev bison cmake
- name: Create Distribution Tarball
run: |
./autogen.sh
./configure --with-incompatible-bdb ac_cv_lib_tor_tor_main=yes
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 $SOURCE_ARTIFACT_DIR
mv depends.tar.gz firo-*.tar.gz $SOURCE_ARTIFACT_DIR
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.SOURCE_ARTIFACT }}
path: ${{ env.SOURCE_ARTIFACT_DIR }}
build-linux-cmake:
name: Build for Linux (CMake)
runs-on: ubuntu-latest
env:
ARTIFACT_DIR: linux-cmake-binaries
TEST_LOG_ARTIFACT_DIR: test-logs
steps:
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Checkout
uses: actions/checkout@v4
- name: Install Required Packages
run: |
sudo apt-get update
sudo apt-get install -y python3-zmq cmake build-essential
- name: Verify ZMQ Installation
run: |
python3 -m pip install --upgrade pip
python3 -m pip install pyzmq
- name: Download Dependencies
run: make -C depends download
- name: Build Dependencies
run: make -C depends -j$(nproc)
- name: Build Firo
run: |
mkdir build
export HOST_TRIPLET=$(depends/config.guess)
cmake -DCMAKE_TOOLCHAIN_FILE=$(realpath depends/$HOST_TRIPLET/toolchain.cmake) -DBUILD_CLI=ON -DBUILD_TESTS=ON -DBUILD_GUI=ON -S$(realpath .) -B$(realpath build)
cd build && make -j$(nproc)
- name: Run Unit Tests
run: |
cd build && make test
- name: Run RPC Tests
env:
TIMEOUT: 600
run: |
cp -rf build/bin/* build/src/
qa/pull-tester/rpc-tests.py -extended
- name: Prepare Files for Artifact
run: |
mkdir -p $ARTIFACT_DIR
mv build/bin/{firo-cli,firo-tx,firod,firo-qt} $ARTIFACT_DIR
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: linux-cmake-binaries
path: ${{ env.ARTIFACT_DIR }}
- name: Prepare Test Logs for Artifact
if: failure()
run: |
tor_log=$(find . -path '*/tor/test-suite.log' -type f || true)
firo_log=$(find . -path '*/src/test-suite.log' -type f || true)
mkdir -p $TEST_LOG_ARTIFACT_DIR
if test -f $tor_log; then
mv $tor_log $TEST_LOG_ARTIFACT_DIR/tor.log
fi
if test -f $firo_log; then
mv $firo_log $TEST_LOG_ARTIFACT_DIR/firo.log
fi
- name: Upload Test Logs Artifact
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-cmake-logs
path: ${{ env.TEST_LOG_ARTIFACT_DIR }}
build-linux-autotools:
name: Build for Linux (Autotools)
needs: create-source-distribution
runs-on: ubuntu-latest
env:
ARTIFACT_DIR: linux-autotools-binaries
TEST_LOG_ARTIFACT_DIR: test-logs
steps:
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Getting Source
uses: actions/download-artifact@v4
with:
name: ${{ env.SOURCE_ARTIFACT }}
path: ${{ env.SOURCE_ARTIFACT_DIR }}
- name: Extract Archives
run: |
tar -xzf depends.tar.gz
tar -xzf firo-*.tar.gz --strip-components=1
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Install Required Packages
run: |
sudo apt-get update
sudo apt-get install -y python3-zmq
- name: Verify ZMQ Installation
run: |
python3 -m pip install --upgrade pip
python3 -m pip install pyzmq
- name: Build Dependencies
run: make -C depends -j$(nproc)
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Build Firo
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: Run Unit Tests
run: make check
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Run RPC Tests
env:
TIMEOUT: 600
run: qa/pull-tester/rpc-tests.py -extended
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Prepare Files for Artifact
run: |
mkdir -p $ARTIFACT_DIR
mv $SOURCE_ARTIFACT/src/{firo-cli,firo-tx,firod,qt/firo-qt} $ARTIFACT_DIR
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: linux-autotools-binaries
path: ${{ env.ARTIFACT_DIR }}
- name: Prepare Test Logs for Artifact
if: failure()
run: |
tor_log=$SOURCE_ARTIFACT/src/tor/test-suite.log
firo_log=$SOURCE_ARTIFACT/src/test-suite.log
mkdir -p $TEST_LOG_ARTIFACT_DIR
if test -f $tor_log; then
mv $tor_log $TEST_LOG_ARTIFACT_DIR/tor.log
fi
if test -f $firo_log; then
mv $firo_log $TEST_LOG_ARTIFACT_DIR/firo.log
fi
- name: Upload Test Logs Artifact
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-autotools-logs
path: ${{ env.TEST_LOG_ARTIFACT_DIR }}
build-windows-autotools:
name: Build for Windows (Autotools)
needs: create-source-distribution
runs-on: ubuntu-latest
env:
ARTIFACT_DIR: windows-autotools-binaries
steps:
- name: Getting Source
uses: actions/download-artifact@v4
with:
name: ${{ env.SOURCE_ARTIFACT }}
path: ${{ env.SOURCE_ARTIFACT_DIR }}
- name: Extract Archives
run: |
tar -xzf depends.tar.gz
tar -xzf firo-*.tar.gz --strip-components=1
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Install Required Packages
run: |
sudo apt-get update
sudo apt-get 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 Firo
run: |
./configure --without-libs --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
mv $SOURCE_ARTIFACT/src/{firo-cli.exe,firo-tx.exe,firod.exe,qt/firo-qt.exe} $ARTIFACT_DIR
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: windows-autotools-binaries
path: ${{ env.ARTIFACT_DIR }}
build-windows-cmake:
name: Build for Windows (CMake)
runs-on: ubuntu-latest
env:
ARTIFACT_DIR: windows-cmake-binaries
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Required Packages
run: |
sudo apt-get update
sudo apt-get install -y g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 cmake
- 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: Download Dependencies
run: make -C depends download
- name: Build Dependencies
run: make -C depends -j$(nproc) HOST=x86_64-w64-mingw32
- name: Build Firo
run: |
mkdir build
export HOST_TRIPLET=$(x86_64-w64-mingw32-gcc -dumpmachine)
cmake -DCMAKE_TOOLCHAIN_FILE=$(realpath depends/$HOST_TRIPLET/toolchain.cmake) -DBUILD_CLI=ON -DBUILD_TESTS=OFF -DBUILD_GUI=ON -S$(realpath .) -B$(realpath build)
cd build && make -j$(nproc)
- name: Prepare Files for Artifact
run: |
mkdir -p $ARTIFACT_DIR
mv build/bin/{firo-cli.exe,firo-tx.exe,firod.exe,firo-qt.exe} $ARTIFACT_DIR
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: windows-cmake-binaries
path: ${{ env.ARTIFACT_DIR }}
build-mac-cmake:
name: Build for macOS (CMake)
runs-on: macos-latest
env:
ARTIFACT_DIR: mac-cmake-binaries
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Xcode instead of Command Line Tools
run: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- name: Set NJOBS variable
run: |
NCPU=$(sysctl -n hw.ncpu)
JOBS=$((NCPU / 2 > 1 ? NCPU / 2 : 1)) # Use half, but at least 1
echo "NJOBS=$JOBS" >> $GITHUB_ENV # Persist NJOBS across steps
echo "Using $JOBS jobs for parallel builds."
# -j$(sysctl -n hw.activecpu) fails. due to high load on macOS, and crappy github runners.
- name: Install Required Packages
run: |
if ! command -v pkg-config &> /dev/null; then
echo "pkg-config not found, installing..."
brew install pkg-config
else
echo "pkg-config is already installed"
fi
brew install automake coreutils python-setuptools cmake make
# Workaround for macOS: https://github.com/actions/runner/issues/2958
- name: Install setuptools
run: sudo -H pip install setuptools
- name: Download Dependencies
run: make -C depends download
- name: Build Dependencies
run: |
make -C depends -j$NJOBS
- name: Build Firo
run: |
mkdir build
export HOST_TRIPLET=$(depends/config.guess)
cmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/depends/$HOST_TRIPLET/toolchain.cmake -DBUILD_CLI=ON -DBUILD_TESTS=OFF -DBUILD_GUI=ON -S$(pwd) -B$(pwd)/build
cd build && make -j$NJOBS
- name: Prepare Files for Artifact
run: |
mkdir -p $ARTIFACT_DIR
mv build/bin/{firo-cli,firo-tx,firod,firo-qt} $ARTIFACT_DIR
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: mac-cmake-binaries
path: ${{ env.ARTIFACT_DIR }}
build-mac-autotools:
name: Build for macOS (Autotools)
needs: create-source-distribution
runs-on: macos-latest
env:
ARTIFACT_DIR: mac-autotools-binaries
steps:
- name: Getting Source
uses: actions/download-artifact@v4
with:
name: ${{ env.SOURCE_ARTIFACT }}
path: ${{ env.SOURCE_ARTIFACT_DIR }}
- name: Extract Archives
run: |
tar -xzf depends.tar.gz
tar -xzf firo-*.tar.gz --strip-components=1
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Use Xcode instead of Command Line Tools
run: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- name: Install Required Packages
run: |
if ! command -v pkg-config &> /dev/null; then
echo "pkg-config not found, installing..."
brew install pkg-config
else
echo "pkg-config is already installed"
fi
brew install automake coreutils python-setuptools
# Workaround for macOS: https://github.com/actions/runner/issues/2958
- name: Install setuptools
run: sudo -H pip install setuptools
- name: Build Dependencies
run: make -C depends -j$(sysctl -n hw.activecpu)
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Build Firo
run: |
./configure --prefix=`pwd`/depends/`depends/config.guess`
make -j$(sysctl -n hw.activecpu)
working-directory: ${{ env.SOURCE_ARTIFACT }}
- name: Prepare Files for Artifact
run: |
mkdir -p $ARTIFACT_DIR
mv $SOURCE_ARTIFACT/src/{firo-cli,firo-tx,firod,qt/firo-qt} $ARTIFACT_DIR
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: mac-autotools-binaries
path: ${{ env.ARTIFACT_DIR }}
0