From 7483eae1821766a0f84dbd96f5619058f7065008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 14 Sep 2023 13:08:16 +0300 Subject: [PATCH] github: Add a manual job for running the libcxx/libcxxabi/libunwind tests This is included already in the main build pipeline, but disabled by default. This allows easily running this on top of a recent separate pipeline. --- .github/workflows/test-libcxx.yml | 97 +++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 .github/workflows/test-libcxx.yml diff --git a/.github/workflows/test-libcxx.yml b/.github/workflows/test-libcxx.yml new file mode 100644 index 00000000..c88d9131 --- /dev/null +++ b/.github/workflows/test-libcxx.yml @@ -0,0 +1,97 @@ +name: Run libcxx/libcxxabi/libunwind tests +on: + workflow_dispatch: + inputs: + commit: + description: 'Commit to extract from' + type: string + branch: + description: 'Branch to extract from' + type: string + pipeline_type: + description: 'Pipeline type' + required: true + default: 'push' + type: choice + options: + - push + - schedule + +jobs: + prepare: + runs-on: ubuntu-latest + outputs: + LLVM_VERSION: ${{steps.get-parameters.outputs.LLVM_VERSION}} + steps: + - name: Download build parameters + uses: dawidd6/action-download-artifact@v2 + with: + workflow: build.yml + workflow_conclusion: success + commit: ${{inputs.commit}} + branch: ${{inputs.branch}} + event: ${{inputs.pipeline_type}} + name: parameters + - name: Get build parameters + id: get-parameters + run: | + cat parameters.txt >> $GITHUB_OUTPUT + cat $GITHUB_OUTPUT + + test-libcxx: + needs: [prepare] + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + arch: + - x86_64 + - i686 + steps: + - name: Download toolchain + uses: dawidd6/action-download-artifact@v2 + with: + workflow: build.yml + workflow_conclusion: success + commit: ${{inputs.commit}} + branch: ${{inputs.branch}} + event: ${{inputs.pipeline_type}} + name: windows-ucrt-${{matrix.arch}}-toolchain + - name: Unpack toolchain + run: | + Expand-Archive llvm-mingw-*.zip -DestinationPath . + del llvm-mingw-*.zip + mv llvm-mingw-* c:\llvm-mingw + echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append + echo "c:\llvm-mingw\python\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append + echo "PYTHON_EXE=c:/llvm-mingw/python/bin/python3.exe" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append + - uses: actions/checkout@v3 + - name: Checkout llvm-project + env: + LLVM_VERSION: ${{needs.prepare.outputs.LLVM_VERSION}} + run: | + bash -c "CHECKOUT_ONLY=1 ./build-llvm.sh" + - name: Build and test libcxx + run: | + cd llvm-project + mkdir build + cd build + cmake ../runtimes ` + -G Ninja ` + -DCMAKE_BUILD_TYPE=Release ` + -DPython3_EXECUTABLE="$Env:PYTHON_EXE" ` + -DLIBCXX_ENABLE_WERROR=YES ` + -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" ` + -DLIBCXX_CXX_ABI=libcxxabi ` + -DCMAKE_C_COMPILER=clang ` + -DCMAKE_CXX_COMPILER=clang++ ` + -DLIBCXXABI_ENABLE_SHARED=NO ` + -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=YES ` + -DLIBCXX_USE_COMPILER_RT=YES ` + -DLIBCXXABI_USE_COMPILER_RT=YES ` + -DLIBUNWIND_USE_COMPILER_RT=YES ` + -DLIBCXXABI_USE_LLVM_UNWINDER=YES ` + -DLIBCXX_EXTRA_SITE_DEFINES="__USE_MINGW_ANSI_STDIO=1;TEST_IS_EXECUTED_IN_A_SLOW_ENVIRONMENT" ` + -DLLVM_LIT_ARGS="-v --time-tests" + ninja + ninja check-cxx check-cxxabi check-unwind