diff options
author | Timothy Flynn <trflynn89@pm.me> | 2021-08-16 13:20:54 -0400 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2021-08-17 13:31:43 +0100 |
commit | 3ce6f2692471340bcd3221cd7fc3e6335c37e6f6 (patch) | |
tree | 898001ce2a94240f235f14401fb577ed2070120a /Meta/Azure/Serenity.yml | |
parent | 5eba8c948d57f8d144a66177ad4c75e99bffa991 (diff) | |
download | serenity-3ce6f2692471340bcd3221cd7fc3e6335c37e6f6.zip |
CI: Build and test SerenityOS with the Clang toolchain on Azure
Diffstat (limited to 'Meta/Azure/Serenity.yml')
-rw-r--r-- | Meta/Azure/Serenity.yml | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Meta/Azure/Serenity.yml b/Meta/Azure/Serenity.yml new file mode 100644 index 0000000000..eabb7dab00 --- /dev/null +++ b/Meta/Azure/Serenity.yml @@ -0,0 +1,89 @@ +parameters: + arch: 'i686' + +jobs: + - job: 'Serenity_Clang_${{ parameters.arch }}' + timeoutInMinutes: 0 # Setting to 0 means the maximum allowed timeout is used. + + variables: + - name: CCACHE_DIR + value: $(Build.SourcesDirectory)/.ccache + + pool: + vmImage: ubuntu-20.04 + + steps: + - template: Setup.yml + parameters: + os: 'Serenity' + + - template: Caches.yml + parameters: + arch: '${{ parameters.arch }}' + toolchain: 'clang' + build_directory: 'Build' + + - script: ./Toolchain/BuildClang.sh + displayName: Build Toolchain + env: + TRY_USE_LOCAL_TOOLCHAIN: 'y' + ARCH: '${{ parameters.arch }}' + + - script: | + mkdir -p Build + displayName: 'Create Build Directory' + + - script: | + cmake -GNinja \ + -DSERENITY_ARCH=${{ parameters.arch }} \ + -DUSE_CLANG_TOOLCHAIN=ON \ + -DENABLE_UNDEFINED_SANITIZER=ON \ + -DENABLE_PCI_IDS_DOWNLOAD=OFF \ + -DENABLE_USB_IDS_DOWNLOAD=OFF \ + -DCMAKE_C_COMPILER=gcc-10 \ + -DCMAKE_CXX_COMPILER=g++-10 \ + .. + displayName: 'Create Build Environment' + workingDirectory: $(Build.SourcesDirectory)/Build + + - script: | + cmake --build . + displayName: 'Build' + workingDirectory: $(Build.SourcesDirectory)/Build + + - script: | + ninja install && ninja image + displayName: 'Create RootFS' + workingDirectory: $(Build.SourcesDirectory)/Build + + - script: | + ninja run + + echo "##[group]Verify Output File" + mkdir fsmount + sudo mount -t ext2 -o loop,rw _disk_image fsmount + + echo "Results: " + sudo cat fsmount/home/anon/test-results.log + echo "##[endgroup]" + + if ! sudo grep -q "Failed: 0" fsmount/home/anon/test-results.log + then + echo "##[error]:^( Tests failed, failing job" + exit 1 + fi + displayName: 'Test' + workingDirectory: $(Build.SourcesDirectory)/Build + env: + SERENITY_QEMU_CPU: 'max,vmx=off' + SERENITY_KERNEL_CMDLINE: 'boot_mode=self-test' + SERENITY_RUN: 'ci' + + - script: | + [ ! -e debug.log ] || cat debug.log + displayName: 'Print Target Logs' + workingDirectory: $(Build.SourcesDirectory)/Build + + - script: | + ccache -s + displayName: 'Cache Stats' |