CI #1699
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: CI | |
on: | |
#push: | |
workflow_dispatch: | |
workflow_call: | |
pull_request_review: | |
types: [submitted] | |
permissions: write-all | |
jobs: | |
#Sanity: | |
#uses: speedb-io/speedb/.github/workflows/sanity_check.yml@main | |
Build: | |
#needs: [Sanity] | |
if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }} | |
#runs-on: [self-hosted, ubuntu, asrunner] | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
include: | |
- name: verify build | |
command: cmake .. -GNinja | |
- name: optimized build | |
command: cmake .. -DCMAKE_BUILD_TYPE=Release -GNinja | |
- mame: clang build | |
command: CC=clang CXX=clang++ cmake .. -GNinja | |
container: | |
image: alpine:3.14 | |
steps: | |
- name: Pre-build | |
run: | | |
env | |
rm -rf /usr/share/dotnet || echo "" | |
df -h | |
apk add git | |
echo "nameserver 8.8.8.8" > /etc/resolv.conf | |
apk add bash python3 py3-pip clang clang-extra-tools shellcheck gcc g++ cmake ninja ccache \ | |
openjdk10 gflags-dev snappy-dev lz4-dev bzip2-dev zstd-dev zlib-dev linux-headers openssh-client tar readline-dev | |
python3 -m pip install lint-diffs flake8 | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- run: git config --system --add safe.directory /__w/speedb/speedb | |
- name: Prepare ccache timestamp | |
id: ccache_cache_timestamp | |
shell: cmake -P {0} | |
run: | | |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) | |
message("::set-output name=timestamp::${current_date}") | |
- name: ccache cache files | |
uses: actions/cache@v2 | |
with: | |
path: ~/.ccache | |
key: ${{runner.os}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} | |
restore-keys: | | |
${{runner.os}}-ccache- | |
- name: ${{ matrix.name }} | |
run: | | |
#echo "try git config" | |
#git config --global --list | |
#echo "done git config" | |
if [ -d "$GITHUB_WORKSPACE/build" ]; then | |
echo >&2 "error: the build directory should not exist" && false NIK | |
fi | |
if [ -d "~/.ccache" ]; then | |
echo "Already exists" | |
else | |
mkdir -p ~/.ccache | |
ls ~ | grep cache || echo "" | |
touch ~/.ccache/ccache.txt | |
echo "aaa" > ~/.ccache/ccache.txt | |
ls ~/.ccache | |
cat ~/.ccache/ccache.txt | |
fi | |
mkdir -p "$GITHUB_WORKSPACE/build" | |
cd "$GITHUB_WORKSPACE/build" | |
export "CCACHE_BASEDIR=$HOME" | |
export "CCACHE_DIR=$HOME/.ccache" | |
export "CCACHE_COMPILERCHECK=content" | |
echo "MAtrix command - " ${{ matrix.command }} | |
${{ matrix.command }} -DPORTABLE=1 -DWITH_GFLAGS=1 \ | |
-DWITH_ZLIB=1 -DWITH_SNAPPY=1 -DWITH_BZ2=1 -DWITH_LZ4=1 -DWITH_ZSTD=1 \ | |
-DWITH_JNI=1 -DJAVA_HOME=/usr/lib/jvm/default-jvm \ | |
-DWITH_BENCHMARK_TOOLS=1 -DWITH_CORE_TOOLS=1 -DWITH_TOOLS=1 \ | |
-DWITH_TESTS=1 -DWITH_ALL_TESTS=1 -DWITH_EXAMPLES=1 | |
echo "starting ninja" | |
ninja | |
#Performance: | |
#if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }} | |
#needs: [Build] | |
#uses: speedb-io/speedb/.github/workflows/perf-test.yml@main | |
QA-Tests: | |
if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }} | |
needs: [Build] | |
uses: speedb-io/speedb/.github/workflows/qa-tests.yml@main | |
Fuzz: | |
if: ${{ github.event.review.state == 'approved' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/heads/release') }} | |
needs: [Build] | |
uses: ./.github/workflows/test_fuzz.yml | |
Check-Licence-And-History: | |
if: ${{ github.event_name == 'pull_request_review' }} | |
uses: ./.github/workflows/check_license_and_history.yml |