diff --git a/.github/workflows/small-cilkapps.yml b/.github/workflows/small-cilkapps.yml new file mode 100644 index 00000000..c0010e25 --- /dev/null +++ b/.github/workflows/small-cilkapps.yml @@ -0,0 +1,70 @@ +name: Small Cilk application tests + +permissions: + contents: read + +on: + workflow_dispatch: + push: + pull_request: + +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: only if it is a pull request build. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} + +jobs: + small-apps: + runs-on: ${{ matrix.os }} + container: + image: ${{(startsWith(matrix.os, 'ubuntu') && 'ghcr.io/llvm/ci-ubuntu-22.04:latest') || null}} + volumes: + - /mnt/:/mnt/ + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macOS-13] + steps: + - name: checkout + uses: actions/checkout@v4 + - name: Setup OpenCilk compiler + id: build-opencilk + uses: OpenCilk/actions/build-opencilk-project@main + with: + projects: clang + os_list: '${{ matrix.os }}' + - name: Build cheetah + id: build-cheetah + shell: bash + run: | + builddir="$(pwd)"/build + opencilkdir='${{ steps.build-opencilk.outputs.opencilk-builddir }}' + mkdir -p $builddir + cmake -G Ninja \ + -B "$builddir" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=$opencilkdir/bin/clang \ + -DCMAKE_CXX_COMPILER=$opencilkdir/bin/clang++ \ + -DLLVM_CMAKE_DIR=$opencilkdir + ninja -C "$builddir" + - name: Checkout small application tests + uses: actions/checkout@v4 + with: + repository: OpenCilk/smallapps + path: smallapps + - name: make check + shell: bash + run: | + cheetahdir="$(pwd)"/build + opencilkdir='${{ steps.build-opencilk.outputs.opencilk-builddir }}' + make_prefix="" + if [ "${{ runner.os }}" == "macOS" ]; then + # Use xcrun to build benchmarks on macOS. + make_prefix="xcrun" + fi + $make_prefix make -C smallapps check \ + CC=$opencilkdir/bin/clang \ + CXX=$opencilkdir/bin/clang++ \ + EXTRA_CFLAGS="--opencilk-resource-dir=$cheetahdir" \ + EXTRA_LDFLAGS="--opencilk-resource-dir=$cheetahdir"