Basic library (ipfs_client) build #539
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
name: Basic library (ipfs_client) build | |
on: | |
pull_request: | |
workflow_dispatch: | |
release: | |
types: [published] | |
jobs: | |
prechecks: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout ipfs_chromium | |
uses: actions/checkout@v4 | |
with: | |
path: 'ipfs_chromium' | |
- name: Run Unit Tests | |
run: ./ipfs_chromium/.github/ut.sh | |
- name: Tour de IPFS | |
run: ./ipfs_chromium/.github/tour.sh | |
- name: Upload coverage reports to Codecov.com | |
uses: codecov/codecov-action@v4 | |
with: | |
files: build/library/cov.info | |
- name: Run Doxygen | |
run: | | |
cmake --build build --config Debug --target doc | |
ls -lrth build/doc/html | |
mv -v ipfs_chromium/.git . | |
- name: UpDoc | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: build/doc/html | |
repository-name: little-bear-labs/ipfs-chromium | |
build: | |
name: ${{ matrix.config.name }} | |
needs: [prechecks] | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
config: | |
- { | |
name: "macOS", | |
os: macos-latest, | |
build_type: "Release", | |
cc: "clang", | |
cxx: "clang++", | |
generators: "Ninja" | |
} | |
- { | |
name: "Ubuntu", | |
os: ubuntu-latest, | |
build_type: "Release", | |
cc: "gcc", | |
cxx: "g++", | |
generators: "Ninja" | |
} | |
- { | |
name: "Ubuntu-Debug", | |
os: ubuntu-latest, | |
build_type: "Debug", | |
cc: "gcc", | |
cxx: "g++", | |
generators: "Ninja" | |
} | |
- { | |
name: "Windows-MSVC", | |
os: windows-latest, | |
build_type: "Release", | |
cc: "cl", | |
cxx: "cl", | |
generators: "Visual Studio 17 2022" | |
} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Print env | |
run: | | |
echo github.event.action: ${{ github.event.action }} | |
echo github.event_name: ${{ github.event_name }} | |
pwd | |
git status | |
which python3 | |
python3 --version | |
- name: Install dependencies on Ubuntu | |
if: startsWith(matrix.config.os, 'ubuntu') | |
run: | | |
sudo apt-get update | |
sudo apt-get install --yes cmake ninja-build doxygen | |
ninja --version | |
cmake --version | |
g++ --version | |
- name: Install dependencies on macos | |
if: startsWith(matrix.config.os, 'macos') | |
shell: bash | |
run: | | |
set -ex | |
brew install cmake | |
brew install ninja | |
brew install conan | |
brew install ghapi | |
ninja --version | |
cmake --version | |
which c++ | |
which clang++ | |
c++ --version | |
clang++ --version | |
/usr/bin/clang++ --version | |
export CC=/usr/bin/clang | |
export CXX=/usr/bin/clang++ | |
conan profile detect | |
conan profile show | |
conan profile path default | |
grep -n . `conan profile path default` | |
echo "compiler=apple-clang" >> `conan profile path default` | |
echo "compiler.cppstd=20" >> `conan profile path default` | |
echo "compiler.libcxx=libc++" >> `conan profile path default` | |
echo "compiler.version=14.0" >> `conan profile path default` | |
conan profile show | |
- name: Install dependencies on Windows | |
if: startsWith(matrix.config.os, 'windows') | |
run: | | |
choco install ninja cmake | |
python3 -m pip install --upgrade pip | |
python3 -m pip install conan | |
conan profile detect | |
Copy-Item ".\.github\msvc.profile" -Destination "C:\Users\runneradmin\.conan2\profiles\default" | |
ninja --version | |
cmake --version | |
conan --version | |
- name: Configure | |
shell: bash | |
run: | | |
mkdir build | |
mkdir ipfs-client-dev | |
cmake \ | |
-G "${{ matrix.config.generators }}" \ | |
-S . \ | |
-B build \ | |
-D CMAKE_INSTALL_PREFIX=`pwd`/ipfs-client-dev \ | |
-D CMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ | |
-D USE_DOXYGEN=OFF \ | |
-D CXX_VERSION=20 | |
- name: Build | |
shell: bash | |
run: cmake --build build --config ${{ matrix.config.build_type }} --target package | |
- name: Upload to release | |
if: (github.event_name == 'release' || github.event_name == 'workflow_dispatch') && matrix.config.build_type == 'Release' | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: | | |
gh upload `python3 ./cmake/version.py` build/ipfs-client* |