Skip to content

Add Ubuntu 24.04

Add Ubuntu 24.04 #876

Workflow file for this run

name: Build check
on:
push:
branches:
- "**"
tags-ignore:
- "*" # We don't want this to run on release
pull_request:
jobs:
build-windows:
name: Windows
runs-on: windows-2022
env:
BOOST_ROOT: C:/local/boost_1_83_0
steps:
- uses: actions/checkout@master
- name: Prepare version
shell: powershell
id: setup
run: |
$os="windows"
$ccx_version="${{ github.sha }}".SubString(0,7)
$release_name="ccx-cli-$os-dev-$ccx_version"
echo "release_name=${release_name}" >> $env:GITHUB_OUTPUT
- name: Install msbuild
uses: microsoft/setup-msbuild@v2
- name: Restore Boost
uses: actions/cache@v4
id: restore-boost
with:
path: ${{env.BOOST_ROOT}}
key: boost_1_83_0-msvc-14.3-64
- name: Install Boost
if: steps.restore-boost.outputs.cache-hit != 'true'
shell: powershell
run: |
$Url = "https://sourceforge.net/projects/boost/files/boost-binaries/1.83.0/boost_1_83_0-msvc-14.3-64.exe"
(New-Object System.Net.WebClient).DownloadFile($Url, "$env:TEMP\boost.exe")
Start-Process -Wait -FilePath "$env:TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=${env:BOOST_ROOT}"
- name: Build
shell: powershell
id: build
run: |
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON
msbuild concealX.sln /p:Configuration=Release /m:2
- name: Prepare release
shell: powershell
run: |
mkdir build/conceal
mv build/src/Release/conceald.exe build/conceal
mv build/src/Release/concealwallet.exe build/conceal
mv build/src/Release/optimizer.exe build/conceal
mv build/src/Release/walletd.exe build/conceal
cp build/tests/Release/*_tests.exe build/conceal
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.setup.outputs.release_name }}
path: build/conceal
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: core_tests
shell: powershell
run: |
cd build/conceal
./core_tests.exe --generate_and_play_test_data
- name: difficulty_tests
shell: powershell
run: |
cp tests/Difficulty/data.txt build/conceal
cd build/conceal
./difficulty_tests.exe data.txt
- name: performance_tests
shell: powershell
run: |
cd build/conceal
./performance_tests.exe
- name: unit_tests
shell: powershell
run: |
cd build/tests
ctest -R UnitTests --output-on-failure
build-mingw:
name: MinGW
runs-on: windows-2022
steps:
- uses: msys2/setup-msys2@v2
with:
update: true
install: >-
git
base-devel
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-boost
mingw-w64-x86_64-cmake
- uses: actions/checkout@master
- name: Prepare version
shell: powershell
id: setup
run: |
$os="mingw"
$ccx_version="${{ github.sha }}".SubString(0,7)
$release_name="ccx-cli-$os-dev-$ccx_version"
echo "release_name=${release_name}" >> $env:GITHUB_OUTPUT
- name: Build
shell: msys2 {0}
id: build
run: |
ls
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DSTATIC=ON
cmake --build . --config Release
- name: Prepare release
shell: msys2 {0}
run: |
mkdir build/conceal
mv build/src/conceald.exe build/conceal
mv build/src/concealwallet.exe build/conceal
mv build/src/optimizer.exe build/conceal
mv build/src/walletd.exe build/conceal
cp build/tests/*_tests.exe build/conceal
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.setup.outputs.release_name }}
path: build/conceal
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: core_tests
shell: powershell
run: |
cd build/conceal
./core_tests.exe --generate_and_play_test_data
- name: difficulty_tests
shell: powershell
run: |
cp tests/Difficulty/data.txt build/conceal
cd build/conceal
./difficulty_tests.exe data.txt
- name: performance_tests
shell: powershell
run: |
cd build/conceal
./performance_tests.exe
- name: unit_tests
shell: powershell
run: |
cd build/tests
ctest -R UnitTests --output-on-failure
build-ubuntu20:
name: Ubuntu 20.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@master
- name: Prepare version
id: setup
run: |
os=ubuntu-20.04
ccx_version=${GITHUB_SHA::7}
release_name=ccx-cli-"$os"-dev-"$ccx_version"
echo "release_name=${release_name}" >> $GITHUB_OUTPUT
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y make cmake gcc g++ libboost-all-dev
- name: Build
id: build
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DSTATIC=ON
make -j2
- name: Prepare release
run: |
mkdir build/conceal
mv build/src/conceald build/conceal
mv build/src/concealwallet build/conceal
mv build/src/optimizer build/conceal
mv build/src/walletd build/conceal
cp build/tests/*_tests build/conceal
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.setup.outputs.release_name }}
path: build/conceal
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: core_tests
run: |
cd build/conceal
./core_tests --generate_and_play_test_data
- name: difficulty_tests
run: |
cp tests/Difficulty/data.txt build/conceal
cd build/conceal
./difficulty_tests data.txt
- name: performance_tests
run: |
cd build/conceal
./performance_tests
- name: system_tests
run: |
cd build/conceal
./system_tests
- name: unit_tests
run: |
cd build/tests
ctest -R UnitTests --output-on-failure
build-ubuntu22:
name: Ubuntu 22.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@master
- name: Prepare version
id: setup
run: |
os=ubuntu-22.04
ccx_version=${GITHUB_SHA::7}
release_name=ccx-cli-"$os"-dev-"$ccx_version"
echo "release_name=${release_name}" >> $GITHUB_OUTPUT
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y make cmake gcc g++ libboost-all-dev
- name: Build
id: build
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DSTATIC=ON
make -j2
- name: Prepare release
run: |
mkdir build/conceal
mv build/src/conceald build/conceal
mv build/src/concealwallet build/conceal
mv build/src/optimizer build/conceal
mv build/src/walletd build/conceal
cp build/tests/*_tests build/conceal
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.setup.outputs.release_name }}
path: build/conceal
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: core_tests
run: |
cd build/conceal
./core_tests --generate_and_play_test_data
- name: difficulty_tests
run: |
cp tests/Difficulty/data.txt build/conceal
cd build/conceal
./difficulty_tests data.txt
- name: performance_tests
run: |
cd build/conceal
./performance_tests
- name: system_tests
run: |
cd build/conceal
./system_tests
- name: unit_tests
run: |
cd build/tests
ctest -R UnitTests --output-on-failure
build-ubuntu24:
name: Ubuntu 24.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@master
- name: Prepare version
id: setup
run: |
os=ubuntu-24.04
ccx_version=${GITHUB_SHA::7}
release_name=ccx-cli-"$os"-dev-"$ccx_version"
echo "release_name=${release_name}" >> $GITHUB_OUTPUT
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y make cmake gcc g++ libboost-all-dev
- name: Build
id: build
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DSTATIC=ON
make -j2
- name: Prepare release
run: |
mkdir build/conceal
mv build/src/conceald build/conceal
mv build/src/concealwallet build/conceal
mv build/src/optimizer build/conceal
mv build/src/walletd build/conceal
cp build/tests/*_tests build/conceal
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.setup.outputs.release_name }}
path: build/conceal
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: core_tests
run: |
cd build/conceal
./core_tests --generate_and_play_test_data
- name: difficulty_tests
run: |
cp tests/Difficulty/data.txt build/conceal
cd build/conceal
./difficulty_tests data.txt
- name: performance_tests
run: |
cd build/conceal
./performance_tests
- name: system_tests
run: |
cd build/conceal
./system_tests
- name: unit_tests
run: |
cd build/tests
ctest -R UnitTests --output-on-failure
build-ubuntu20-clang:
name: Ubuntu 20.04 clang
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@master
- name: Prepare version
id: setup
run: |
os=ubuntu-20.04-clang
ccx_version=${GITHUB_SHA::7}
release_name=ccx-cli-"$os"-dev-"$ccx_version"
echo "release_name=${release_name}" >> $GITHUB_OUTPUT
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y make cmake clang libboost-all-dev
- name: Build
id: build
run: |
mkdir build
cd build
CC=clang CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DSTATIC=ON
make -j2
- name: Prepare release
run: |
mkdir build/conceal
mv build/src/conceald build/conceal
mv build/src/concealwallet build/conceal
mv build/src/optimizer build/conceal
mv build/src/walletd build/conceal
cp build/tests/*_tests build/conceal
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.setup.outputs.release_name }}
path: build/conceal
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: core_tests
run: |
cd build/conceal
./core_tests --generate_and_play_test_data
- name: difficulty_tests
run: |
cp tests/Difficulty/data.txt build/conceal
cd build/conceal
./difficulty_tests data.txt
- name: performance_tests
run: |
cd build/conceal
./performance_tests
- name: system_tests
run: |
cd build/conceal
./system_tests
- name: unit_tests
run: |
cd build/tests
ctest -R UnitTests --output-on-failure
build-macos11:
name: macOS
runs-on: macos-12
steps:
- uses: actions/checkout@master
- name: Prepare version
id: setup
run: |
os=macos-12
ccx_version=${GITHUB_SHA::7}
release_name=ccx-cli-"$os"-dev-"$ccx_version"
echo "release_name=${release_name}" >> $GITHUB_OUTPUT
- name: Install dependencies
run: |
brew install boost
- name: Build
id: build
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DSTATIC=ON
make -j2
- name: Prepare release
run: |
mkdir build/conceal
mv build/src/conceald build/conceal
mv build/src/concealwallet build/conceal
mv build/src/optimizer build/conceal
mv build/src/walletd build/conceal
cp build/tests/*_tests build/conceal
- name: Upload To GH Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.setup.outputs.release_name }}
path: build/conceal
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: core_tests
run: |
cd build/conceal
./core_tests --generate_and_play_test_data
- name: difficulty_tests
run: |
cp tests/Difficulty/data.txt build/conceal
cd build/conceal
./difficulty_tests data.txt
- name: performance_tests
run: |
cd build/conceal
./performance_tests
- name: unit_tests
run: |
cd build/tests
ctest -R UnitTests --output-on-failure