upload nightly builds #2
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: CMake | |
on: | |
push: | |
branches: [z80] | |
jobs: | |
build-llvm: | |
needs: [] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest] | |
build-type: [Release] | |
runs-on: ${{matrix.runs-on}} | |
steps: | |
- name: Uninstall Unused Packages | |
if: runner.os == 'Linux' | |
run: sudo apt-get remove azure-cli libgl1-mesa-dri ^google-chrome.*$ ^dotnet-sdk-[0-9.]+$ firefox | |
- name: Bootstrap Build Environment | |
if: runner.os == 'Windows' | |
run: "cmake -E echo >> $env:GITHUB_ENV ENV=env:" | |
- name: Prepare Build Environment | |
if: runner.os != 'Windows' | |
run: | | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CC=clang | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CFLAGS=-std=c17 | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXX=clang++ | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXXFLAGS=-std=c++17 | |
- name: Prepare Build Environment | |
if: runner.os == 'Windows' | |
run: | | |
git config --global core.autocrlf false | |
$path = vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | |
cmake -E echo >> $${{env.ENV}}GITHUB_PATH "$(join-path $path 'VC\Tools\Llvm\bin')" | |
cmd /s /c >> $${{env.ENV}}GITHUB_ENV """$(join-path $path 'Common7\Tools\vsdevcmd.bat')"" > nul && set" | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CC=clang-cl | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXX=clang-cl | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV EXE=.exe | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV PY=.py | |
- name: Prepare Build Configuration | |
if: matrix.build-type == 'Release' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV CMAKE_CONFIG=-DLLVM_TARGETS_TO_BUILD:STRING= -DLLVM_ENABLE_LTO:STRING=OFF -DLLVM_STATIC_LINK_CXX_STDLIB:BOOL=ON | |
- name: Prepare Build Environment | |
if: matrix.build-type == 'Debug' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=ON | |
- name: Prepare Build Environment | |
if: matrix.build-type != 'Debug' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=OFF | |
- name: Install Build Dependencies | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get install -y ninja-build | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV | |
- name: Install Build Dependencies | |
if: runner.os == 'macOS' | |
run: | | |
brew install ninja | |
cmake -E echo >> $${{env.ENV}}GITHUB_PATH /usr/local/opt/llvm/bin | |
- name: Install Build Dependencies | |
if: runner.os == 'Windows' | |
run: pip install ninja | |
- name: Checkout Project | |
uses: actions/checkout@v4 | |
with: | |
path: src | |
- name: Sparse Checkout | |
working-directory: src | |
run: | | |
git version | |
git sparse-checkout init --cone | |
git sparse-checkout set cmake third-party llvm clang | |
- name: Configure LLVM | |
run: cmake -Ssrc/llvm -Bbuild -GNinja -DCMAKE_BUILD_TYPE:STRING=${{matrix.build-type}} ${{env.CMAKE_CONFIG}} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH="${{github.workspace}}/llvm" -DCMAKE_C_COMPILER:FILEPATH="${{env.CC}}" -DCMAKE_C_FLAGS:STRING="${{env.CFLAGS}}" -DCMAKE_CXX_COMPILER:FILEPATH="${{env.CXX}}" -DCMAKE_CXX_FLAGS:STRING="${{env.CXXFLAGS}}" -DLLVM_PARALLEL_LINK_JOBS:STRING=1 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD:STRING="Z80" -DLLVM_TARGET_ARCH="ez80" -DLLVM_LINK_LLVM_DYLIB:BOOL=${{env.DYLIB}} -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF -DLLVM_INCLUDE_TESTS:BOOL=OFF -DLLVM_TOOL_DSYMUTIL_BUILD:BOOL=OFF -DLLVM_TOOL_GOLD_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_AS_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_CFI_VERIFY_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_CVTRES_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_DWP_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_EXEGESIS_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_GSYMUTIL_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_IFS_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_ISEL_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_ITANIUM_DEMANGLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_JITLINK_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_JITLISTENER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_LIPO_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_LTO2_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_LTO_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_MCA_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MICROSOFT_DEMANGLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MT_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_OPT_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_PDBUTIL_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_PROFDATA_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_RC_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_SPECIAL_CASE_LIST_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_UNDNAME_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_XRAY_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_YAML_NUMERIC_PARSER_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_SANCOV_BUILD:BOOL=OFF -DLLVM_TOOL_SANSTATS_BUILD:BOOL=OFF -DLLVM_TOOL_VFABI_DEMANGLE_FUZZER_BUILD:BOOL=OFF | |
- name: Build LLVM | |
run: cmake --build build --config ${{matrix.build-type}} | |
- name: Install LLVM | |
run: | | |
cmake --build build --config ${{matrix.build-type}} --target install | |
cmake -E copy build/include/llvm/Config/config.h llvm/include/llvm/Config | |
- name: Upload LLVM | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LLVM${{matrix.runs-on}}${{matrix.build-type}} | |
path: llvm | |
- name: Install ez80-link | |
run: cmake -E copy llvm/bin/llvm-link${{env.EXE}} ez80-link${{env.EXE}} | |
- name: Strip ez80-link | |
if: runner.os != 'Windows' | |
run: strip ez80-link${{env.EXE}} | |
- name: Upload ez80-link | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ez80-link${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}} | |
path: ez80-link${{env.EXE}} | |
- name: Install ez80-lto | |
run: cmake -E copy llvm/bin/llvm-lto${{env.EXE}} ez80-lto${{env.EXE}} | |
- name: Strip ez80-lto | |
if: runner.os != 'Windows' | |
run: strip ez80-lto${{env.EXE}} | |
- name: Upload ez80-lto | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ez80-lto${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}} | |
path: ez80-lto${{env.EXE}} | |
- name: Install ez80-lto2 | |
run: cmake -E copy llvm/bin/llvm-lto2${{env.EXE}} ez80-lto2${{env.EXE}} | |
- name: Strip ez80-lto2 | |
if: runner.os != 'Windows' | |
run: strip ez80-lto2${{env.EXE}} | |
- name: Upload ez80-lto2 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ez80-lto2${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}} | |
path: ez80-lto2${{env.EXE}} | |
- name: Configure Test | |
run: cmake build -DLLVM_LINK_LLVM_DYLIB:BOOL=${{env.DYLIB}} -DLLVM_ENABLE_PROJECTS:STRING=clang -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF -DLLVM_INCLUDE_TESTS:BOOL=ON -DLLVM_TOOL_DSYMUTIL_BUILD:BOOL=ON -DLLVM_TOOL_GOLD_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_AS_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_CFI_VERIFY_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_CVTRES_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_DWP_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_EXEGESIS_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_GSYMUTIL_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_IFS_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_ISEL_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_ITANIUM_DEMANGLE_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_JITLINK_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_JITLISTENER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_LIPO_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_LTO2_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_LTO_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_MCA_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_MICROSOFT_DEMANGLE_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_MT_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_OPT_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_PDBUTIL_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_PROFDATA_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_RC_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_SPECIAL_CASE_LIST_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_UNDNAME_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_XRAY_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_YAML_NUMERIC_PARSER_FUZZER_BUILD:BOOL=ON -DLLVM_TOOL_SANCOV_BUILD:BOOL=ON -DLLVM_TOOL_SANSTATS_BUILD:BOOL=ON -DLLVM_TOOL_VFABI_DEMANGLE_FUZZER_BUILD:BOOL=ON | |
- name: Build Test | |
run: cmake --build build --config ${{matrix.build-type}} --target Z80Tests | |
- name: Install Test | |
run: | | |
cmake -E make_directory test/bin test/test/Unit test/tools/clang/bin test/tools/clang/test/Unit test/unittests/Target/Z80 | |
cmake -E copy build/bin/not${{env.EXE}} build/bin/FileCheck${{env.EXE}} build/bin/llvm-PerfectShuffle${{env.EXE}} build/bin/lli-child-target${{env.EXE}} build/bin/llvm-lit${{env.PY}} build/bin/llvm-locstats build/bin/count${{env.EXE}} build/bin/yaml-bench${{env.EXE}} test/bin | |
cmake -E copy build/test/lit.site.cfg.py test/test | |
cmake -E copy build/test/Unit/lit.site.cfg.py test/test/Unit | |
cmake -E copy build/tools/clang/bin/gen_ast_dump_json_test.py test/tools/clang/bin | |
cmake -E copy build/tools/clang/test/lit.site.cfg.py test/tools/clang/test | |
cmake -E copy build/tools/clang/test/Unit/lit.site.cfg.py test/tools/clang/test/Unit | |
cmake -E copy build/unittests/Target/Z80/Z80Tests${{env.EXE}} test/unittests/Target/Z80 | |
- name: Upload Test | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test${{matrix.runs-on}}${{matrix.build-type}} | |
path: test | |
- name: Disk Usage | |
if: always() && runner.os != 'Windows' | |
run: df -h | |
- name: Disk Usage | |
if: always() && runner.os == 'Windows' | |
run: wmic logicaldisk get size,freespace,caption | |
build-clang: | |
needs: [build-llvm] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest] | |
build-type: [Release] | |
runs-on: ${{matrix.runs-on}} | |
steps: | |
- name: Uninstall Unused Packages | |
if: runner.os == 'Linux' | |
run: sudo apt-get remove azure-cli libgl1-mesa-dri ^google-chrome.*$ ^dotnet-sdk-[0-9.]+$ firefox | |
- name: Bootstrap Build Environment | |
if: runner.os == 'Windows' | |
run: "cmake -E echo >> $env:GITHUB_ENV ENV=env:" | |
- name: Prepare Build Environment | |
if: runner.os != 'Windows' | |
run: | | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CC=clang | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CFLAGS=-std=c17 | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXX=clang++ | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXXFLAGS=-std=c++17 | |
- name: Prepare Build Environment | |
if: runner.os == 'Windows' | |
run: | | |
git config --global core.autocrlf false | |
$path = vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | |
cmake -E echo >> $${{env.ENV}}GITHUB_PATH "$(join-path $path 'VC\Tools\Llvm\bin')" | |
cmd /s /c >> $${{env.ENV}}GITHUB_ENV """$(join-path $path 'Common7\Tools\vsdevcmd.bat')"" > nul && set" | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CC=clang-cl | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXX=clang-cl | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV EXE=.exe | |
- name: Prepare Build Configuration | |
if: matrix.build-type == 'Release' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV CMAKE_CONFIG=-DLLVM_TARGETS_TO_BUILD:STRING= -DLLVM_ENABLE_LTO:STRING=OFF -DLLVM_STATIC_LINK_CXX_STDLIB:BOOL=ON | |
- name: Prepare Build Environment | |
if: matrix.build-type == 'Debug' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=ON | |
- name: Prepare Build Environment | |
if: matrix.build-type != 'Debug' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=OFF | |
- name: Install Build Dependencies | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get install -y ninja-build | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV | |
- name: Install Build Dependencies | |
if: runner.os == 'macOS' | |
run: | | |
brew install ninja | |
cmake -E echo >> $${{env.ENV}}GITHUB_PATH /usr/local/opt/llvm/bin | |
- name: Install Build Dependencies | |
if: runner.os == 'Windows' | |
run: pip install ninja | |
- name: Checkout Project | |
uses: actions/checkout@v4 | |
with: | |
path: src | |
- name: Sparse Checkout | |
working-directory: src | |
run: | | |
git version | |
git sparse-checkout init --cone | |
git sparse-checkout set cmake third-party clang | |
- name: Download LLVM | |
uses: actions/download-artifact@v4 | |
with: | |
name: LLVM${{matrix.runs-on}}${{matrix.build-type}} | |
path: llvm | |
- name: Set Executable | |
if: runner.os != 'Windows' | |
run: chmod +x llvm/bin/* | |
- name: Configure Clang | |
run: cmake -Ssrc/clang -Bbuild -GNinja -DCMAKE_BUILD_TYPE:STRING=${{matrix.build-type}} ${{env.CMAKE_CONFIG}} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH="${{github.workspace}}/clang" -DCMAKE_C_COMPILER:FILEPATH="${{env.CC}}" -DCMAKE_C_FLAGS:STRING="${{env.CFLAGS}}" -DCMAKE_CXX_COMPILER:FILEPATH="${{env.CXX}}" -DCMAKE_CXX_FLAGS:STRING="${{env.CXXFLAGS}}" -DLLVM_DIR:PATH="${{github.workspace}}/llvm/lib/cmake/llvm" -DCLANG_LINK_CLANG_DYLIB:BOOL=${{env.DYLIB}} -DCLANG_TOOL_AMDGPU_ARCH_BUILD:BOOL=OFF -DCLANG_TOOL_APINOTES_TEST_BUILD:BOOL=OFF -DCLANG_TOOL_ARCMT_TEST_BUILD:BOOL=ON -DCLANG_TOOL_CLANG_CHECK_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_DIFF_BUILD:BOOL=ON -DCLANG_TOOL_CLANG_EXTDEF_MAPPING_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_FORMAT_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_FORMAT_VS_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_FUZZER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_IMPORT_TEST_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_LINKER_WRAPPER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_NVLINK_WRAPPER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_OFFLOAD_BUNDLER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_OFFLOAD_PACKAGER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_OFFLOAD_WRAPPER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_REFACTOR_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_RENAME_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_REPL_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_SCAN_DEPS_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_SHLIB_BUILD:BOOL=OFF -DCLANG_TOOL_C_ARCMT_TEST_BUILD:BOOL=ON -DCLANG_TOOL_C_INDEX_TEST_BUILD:BOOL=OFF -DCLANG_TOOL_DIAGTOOL_BUILD:BOOL=OFF -DCLANG_TOOL_DRIVER_BUILD:BOOL=ON -DCLANG_TOOL_LIBCLANG_BUILD:BOOL=ON -DCLANG_TOOL_SCAN_BUILD_BUILD:BOOL=OFF -DCLANG_TOOL_SCAN_BUILD_PY_BUILD:BOOL=OFF -DCLANG_TOOL_SCAN_VIEW_BUILD:BOOL=OFF | |
- name: Build Clang | |
run: cmake --build build --config ${{matrix.build-type}} | |
- name: Install Clang | |
run: cmake --build build --config ${{matrix.build-type}} --target install | |
- name: Upload Clang | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Clang${{matrix.runs-on}}${{matrix.build-type}} | |
path: clang | |
- name: Install ez80-clang | |
run: cmake -E copy clang/bin/clang${{env.EXE}} ez80-clang${{env.EXE}} | |
- name: Strip ez80-clang | |
if: runner.os != 'Windows' | |
run: strip ez80-clang${{env.EXE}} | |
- name: Test ez80-clang | |
run: cmake -E echo "void test(void){}" | ./ez80-clang${{env.EXE}} -S -xc - -o - | |
- name: Upload ez80-clang | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ez80-clang${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}} | |
path: ez80-clang${{env.EXE}} | |
- name: Download Test | |
uses: actions/download-artifact@v4 | |
with: | |
name: Test${{matrix.runs-on}}${{matrix.build-type}} | |
path: test | |
- name: Install Test | |
run: cmake -E copy build/bin/arcmt-test${{env.EXE}} build/bin/c-arcmt-test${{env.EXE}} build/bin/clang-diff${{env.EXE}} build/bin/clang-tblgen${{env.EXE}} test/bin | |
- name: Upload Test | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test${{matrix.runs-on}}${{matrix.build-type}} | |
path: test | |
- name: Disk Usage | |
if: always() && runner.os != 'Windows' | |
run: df -h | |
- name: Disk Usage | |
if: always() && runner.os == 'Windows' | |
run: wmic logicaldisk get size,freespace,caption | |
test-llvm-z80: | |
needs: [build-llvm] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest] | |
build-type: [Release] | |
runs-on: ${{matrix.runs-on}} | |
steps: | |
- name: Uninstall Unused Packages | |
if: runner.os == 'Linux' | |
run: sudo apt-get remove azure-cli libgl1-mesa-dri ^google-chrome.*$ ^dotnet-sdk-[0-9.]+$ firefox | |
- name: Bootstrap Build Environment | |
if: runner.os == 'Windows' | |
run: "cmake -E echo >> $env:GITHUB_ENV ENV=env:" | |
- name: Prepare Build Environment | |
if: runner.os == 'Windows' | |
run: | | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV EXE=.exe | |
cmake -E echo >> $${{env.ENV}}GITHUB_ENV PY=.py | |
- name: Checkout Project | |
uses: actions/checkout@v4 | |
with: | |
path: src | |
- name: Sparse Checkout | |
working-directory: src | |
run: | | |
git version | |
git sparse-checkout init --cone | |
git sparse-checkout set cmake llvm/test llvm/utils/lit/lit llvm/unittest third-party | |
- name: Download Test | |
uses: actions/download-artifact@v4 | |
with: | |
name: Test${{matrix.runs-on}}${{matrix.build-type}} | |
path: build | |
- name: Download LLVM | |
uses: actions/download-artifact@v4 | |
with: | |
name: LLVM${{matrix.runs-on}}${{matrix.build-type}} | |
path: build | |
- name: Set Executable | |
if: runner.os != 'Windows' | |
run: chmod +x build/bin/* build/unittests/Target/Z80/Z80Tests${{env.EXE}} | |
- name: Unittest LLVM Z80 | |
run: build/unittests/Target/Z80/Z80Tests${{env.EXE}} | |
- name: Test LLVM Z80 | |
run: build/bin/llvm-lit${{env.PY}} -v src/llvm/test/CodeGen/Z80 | |
test-llvm: | |
needs: [build-llvm] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest] | |
build-type: [Debug] | |
continue-on-error: true | |
if: false | |
runs-on: ${{matrix.runs-on}} | |
steps: | |
- name: Uninstall Unused Packages | |
if: runner.os == 'Linux' | |
run: sudo apt-get remove azure-cli libgl1-mesa-dri ^google-chrome.*$ ^dotnet-sdk-[0-9.]+$ firefox | |
- name: Bootstrap Build Environment | |
if: runner.os == 'Windows' | |
run: "cmake -E echo >> $env:GITHUB_ENV ENV=env:" | |
- name: Prepare Build Environment | |
if: runner.os == 'Windows' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV PY=.py | |
- name: Checkout Project | |
uses: actions/checkout@v4 | |
with: | |
path: src | |
- name: Sparse Checkout | |
working-directory: src | |
run: | | |
git version | |
git sparse-checkout init --cone | |
git sparse-checkout set cmake third-party llvm/test llvm/utils/lit/lit | |
- name: Download Test | |
uses: actions/download-artifact@v4 | |
with: | |
name: Test${{matrix.runs-on}}${{matrix.build-type}} | |
path: build | |
- name: Download LLVM | |
uses: actions/download-artifact@v4 | |
with: | |
name: LLVM${{matrix.runs-on}}${{matrix.build-type}} | |
path: build | |
- name: Set Executable | |
if: runner.os != 'Windows' | |
run: chmod +x build/bin/* | |
- name: Test LLVM | |
run: build/bin/llvm-lit${{env.PY}} -v src/llvm/test | |
test-clang: | |
needs: [build-llvm, build-clang] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest] | |
build-type: [Debug] | |
continue-on-error: true | |
if: false | |
runs-on: ${{matrix.runs-on}} | |
steps: | |
- name: Uninstall Unused Packages | |
if: runner.os == 'Linux' | |
run: sudo apt-get remove azure-cli libgl1-mesa-dri ^google-chrome.*$ ^dotnet-sdk-[0-9.]+$ firefox | |
- name: Bootstrap Build Environment | |
if: runner.os == 'Windows' | |
run: "cmake -E echo >> $env:GITHUB_ENV ENV=env:" | |
- name: Prepare Build Environment | |
if: runner.os == 'Windows' | |
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV PY=.py | |
- name: Checkout Project | |
uses: actions/checkout@v4 | |
with: | |
path: src | |
- name: Sparse Checkout | |
working-directory: src | |
run: | | |
git version | |
git sparse-checkout init --cone | |
git sparse-checkout set cmake third-party clang/test llvm/utils/lit/lit | |
- name: Download Test | |
uses: actions/download-artifact@v4 | |
with: | |
name: Test${{matrix.runs-on}}${{matrix.build-type}} | |
path: build | |
- name: Download LLVM | |
uses: actions/download-artifact@v4 | |
with: | |
name: LLVM${{matrix.runs-on}}${{matrix.build-type}} | |
path: build | |
- name: Download Clang | |
uses: actions/download-artifact@v4 | |
with: | |
name: Clang${{matrix.runs-on}}${{matrix.build-type}} | |
path: build | |
- name: Set Executable | |
if: runner.os != 'Windows' | |
run: chmod +x build/bin/* | |
- name: Test Clang | |
run: build/bin/llvm-lit${{env.PY}} -v src/clang/test | |
nightly: | |
runs-on: ubuntu-latest | |
needs: [build-clang, test-llvm-z80] | |
if: github.ref == 'refs/heads/z80' | |
steps: | |
- name: Download Ubuntu 20.04 ez80-clang | |
uses: actions/download-artifact@v4 | |
with: | |
name: ez80-clang-ubuntu-20.04Release | |
path: ${{github.workspace}} | |
- name: Download Ubuntu 20.04 ez80-link | |
uses: actions/download-artifact@v4 | |
with: | |
name: ez80-link-ubuntu-20.04Release | |
path: ${{github.workspace}} | |
- name: chmod and zip Ubuntu Artifacts | |
run: | | |
chmod +x ez80-clang ez80-link | |
zip ez80-clang-link_ubuntu_nightly.zip ez80-clang ez80-link | |
rm ez80-clang ez80-link | |
- name: Download macOS 11 ez80-clang | |
uses: actions/download-artifact@v4 | |
with: | |
name: ez80-clang-macos-11Release | |
path: ${{github.workspace}} | |
- name: Download macOS 11 ez80-link | |
uses: actions/download-artifact@v4 | |
with: | |
name: ez80-link-macos-11Release | |
path: ${{github.workspace}} | |
- name: chmod and zip macOS Artifacts | |
run: | | |
chmod +x ez80-clang ez80-link | |
zip ez80-clang-link_macOS_nightly.zip ez80-clang ez80-link | |
rm ez80-clang ez80-link | |
- name: Download Windows 20.04 ez80-clang | |
uses: actions/download-artifact@v4 | |
with: | |
name: ez80-clang.exe-windows-latestRelease | |
path: ${{github.workspace}} | |
- name: Download Windows ez80-link | |
uses: actions/download-artifact@v4 | |
with: | |
name: ez80-link.exe-windows-latestRelease | |
path: ${{github.workspace}} | |
- name: zip Windows Artifacts | |
run: | | |
zip ez80-clang-link_windows_nightly.zip ez80-clang.exe ez80-link.exe | |
rm ez80-clang.exe ez80-link.exe | |
- name: Update nightly release | |
uses: pyTooling/Actions/releaser@main | |
with: | |
tag: nightly | |
rm: true | |
token: ${{secrets.GITHUB_TOKEN}} | |
files: | | |
ez80-clang-link_ubuntu_nightly.zip | |
ez80-clang-link_macOS_nightly.zip | |
ez80-clang-link_windows_nightly.zip |