Skip to content

Workflow file for this run

name: CI

Check failure on line 1 in .github/workflows/build.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/build.yml

Invalid workflow file

No steps defined in `steps` and no workflow called in `uses` for the following jobs: build-arm-linux, build-depends-arm-linux, build-depends-linux64-debug, build-depends-win64, build-linux64-debug, build-win64, test-linux64
on:
push:
pull_request:
permissions:
contents: read
packages: write
env:
DOCKER_DRIVER: overlay2
FAST_MODE: false
jobs:
builder-image:
name: Builder Image
runs-on: ubuntu-20.04
services:
docker:
image: docker:20.10.20-dind
options: --privileged
ports:
- 2375:2375
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Log in to GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Set lowercase branch name
id: lowercase_branch
run: echo "##[set-output name=branch;]${GITHUB_REF##*/}" | tr '[:upper:]' '[:lower:]'
- name: Set lowercase repository
id: lowercase_repo
run: echo "##[set-output name=repo;]${{ github.repository }}" | tr '[:upper:]' '[:lower:]'
- name: Pull builder image
run: |
docker pull ghcr.io/${{ steps.lowercase_repo.outputs.repo }}/builder-${{ steps.lowercase_branch.outputs.branch }} || true
docker pull ghcr.io/${{ steps.lowercase_repo.outputs.repo }}/builder-develop || true
- name: Build and push builder image
run: |
cd contrib/containers/ci
docker build --cache-from ghcr.io/${{ steps.lowercase_repo.outputs.repo }}/builder-${{ steps.lowercase_branch.outputs.branch }} --cache-from ghcr.io/${{ steps.lowercase_repo.outputs.repo }}/builder-develop -t ghcr.io/${{ steps.lowercase_repo.outputs.repo }}/builder-${{ steps.lowercase_branch.outputs.branch }} -f Dockerfile .
docker push ghcr.io/${{ steps.lowercase_repo.outputs.repo }}/builder-${{ steps.lowercase_branch.outputs.branch }}
build-depends-template:
runs-on: ubuntu-20.04
needs: builder-image
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup MacOS SDK
if: env.HOST == 'x86_64-apple-darwin'
run: |
mkdir -p depends/SDKs
mkdir -p depends/sdk-sources
OSX_SDK_BASENAME="Xcode-${XCODE_VERSION}-${XCODE_BUILD_ID}-extracted-SDK-with-libcxx-headers.tar.gz"
OSX_SDK_PATH="depends/sdk-sources/${OSX_SDK_BASENAME}"
if [ ! -f "$OSX_SDK_PATH" ]; then
echo "Downloading MacOS SDK"
curl --location --fail "${SDK_URL}/${OSX_SDK_BASENAME}" -o "$OSX_SDK_PATH"
fi
if [ -f "$OSX_SDK_PATH" ]; then
echo "Extracting MacOS SDK"
tar -C depends/SDKs -xf "$OSX_SDK_PATH"
- name: Build dependencies
run: make -j$(nproc) -C depends HOST=${{ env.HOST }} $DEP_OPTS
build-template:
runs-on: ubuntu-20.04
needs: ${{ matrix.depends_job }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup environment
run: |
export CACHE_DIR=$GITHUB_WORKSPACE/cache
echo BUILD_TARGET=$BUILD_TARGET
source ./ci/dash/matrix.sh
- name: Build source
run: ./ci/dash/build_src.sh
- name: Run unit tests
run: ./ci/dash/test_unittests.sh
test-template:
runs-on: ubuntu-20.04
needs: ${{ matrix.build_job }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup environment
run: |
export CACHE_DIR=$GITHUB_WORKSPACE/cache
echo BUILD_TARGET=$BUILD_TARGET
source ./ci/dash/matrix.sh
- name: Run integration tests
run: ./ci/dash/test_integrationtests.sh $INTEGRATION_TESTS_ARGS
build-depends-arm-linux:
name: Build Dependencies (ARM Linux)
extends: build-depends-template
env:
HOST: arm-linux-gnueabihf
build-depends-win64:
name: Build Dependencies (Win64)
extends: build-depends-template
env:
HOST: x86_64-w64-mingw32
build-depends-linux64-debug:
name: Build Dependencies (Linux64 Debug)
extends: build-depends-template
env:
HOST: x86_64-pc-linux-gnu
DEP_OPTS: DEBUG=1
build-arm-linux:
name: Build (ARM Linux)
extends: build-template
needs: build-depends-arm-linux
env:
BUILD_TARGET: arm-linux
build-win64:
name: Build (Win64)
extends: build-template
needs: build-depends-win64
env:
BUILD_TARGET: win64
build-linux64-debug:
name: Build (Linux64 Debug)
extends: build-template
needs: build-depends-linux64-debug
env:
BUILD_TARGET: linux64
test-linux64:
name: Test (Linux64)
extends: test-template
needs: build-linux64-debug
env:
BUILD_TARGET: linux64
INTEGRATION_TESTS_ARGS: --extended --exclude feature_pruning,feature_dbcrash