CI: Remove now-unused Azure pipeline templates

This commit is contained in:
Timothy Flynn 2024-05-08 20:31:09 -04:00 committed by Tim Flynn
parent fffa4ef250
commit 5f6495fb29
Notes: sideshowbarker 2024-07-17 04:49:48 +09:00
5 changed files with 0 additions and 496 deletions

View File

@ -1,99 +0,0 @@
parameters:
os: 'Linux'
arch: 'x86_64'
toolchain: 'gcc'
coverage: 'OFF'
download_cache_path: ''
ccache_version: 1 # Increment this number if CI has trouble with ccache.
serenity_ccache_path: ''
toolchain_ccache_path: ''
with_remote_data_caches: true
steps:
- script: |
echo "##vso[task.setvariable variable=timestamp]$(date -u +"%Y%m%d%H%M_%S")"
displayName: 'Stamps'
- ${{ if ne(parameters.arch, 'Lagom') }}:
- ${{ if eq(parameters.toolchain, 'clang') }}:
- task: Cache@2
inputs:
key: '"toolchain" | "x86_64" | Toolchain/BuildClang.sh | Toolchain/Patches/llvm/*.patch | Toolchain/CMake/*.cmake | Userland/Libraries/LibC/**/*.h'
path: $(Build.SourcesDirectory)/Toolchain/Cache
displayName: 'Toolchain Prebuilt Cache'
- script: |
source $(Build.SourcesDirectory)/Ports/llvm/package.sh
echo "##vso[task.setvariable variable=toolchain_version]$(echo ${version} | cut -d'.' -f1)"
displayName: 'Toolchain Version'
- ${{ if eq(parameters.toolchain, 'gcc') }}:
- task: Cache@2
inputs:
key: '"toolchain" | "${{ parameters.arch }}" | Toolchain/BuildGNU.sh | Toolchain/Patches/binutils/*.patch | Toolchain/Patches/gcc/*.patch | Userland/Libraries/LibC/**/*.h'
path: $(Build.SourcesDirectory)/Toolchain/Cache
displayName: 'Toolchain Prebuilt Cache'
- script: |
source $(Build.SourcesDirectory)/Ports/gcc/package.sh
echo "##vso[task.setvariable variable=toolchain_version]$(echo ${version} | cut -d'.' -f1)"
displayName: 'Toolchain Version'
- ${{ if ne(parameters.toolchain_ccache_path, '') }}:
- task: Cache@2
inputs:
key: '"toolchain ccache" | "x86_64" | "${{ parameters.toolchain }}" | "$(toolchain_version)" | "${{ parameters.ccache_version }}" | "$(timestamp)"'
restoreKeys: |
"toolchain ccache" | "x86_64" | "${{ parameters.toolchain }}" | "$(toolchain_version)" | "${{ parameters.ccache_version }}"
path: ${{ parameters.toolchain_ccache_path }}
displayName: 'Toolchain Compiler Cache'
- script: |
CCACHE_DIR=${{ parameters.toolchain_ccache_path }} ccache -M 0
CCACHE_DIR=${{ parameters.toolchain_ccache_path }} ccache -s
CCACHE_DIR=${{ parameters.toolchain_ccache_path }} ccache -z
displayName: 'Configure Toolchain ccache'
- ${{ if ne(parameters.serenity_ccache_path, '') }}:
- task: Cache@2
inputs:
key: '"ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.coverage }}" | "${{ parameters.ccache_version }}" | "$(timestamp)"'
restoreKeys: |
"ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.coverage }}" | "${{ parameters.ccache_version }}"
path: ${{ parameters.serenity_ccache_path }}
displayName: 'Serenity Compiler Cache'
- script: |
CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -M 0
# Reset all ccache modification dates to a known epoch. This provides a baseline that we can prune against.
find ${{ parameters.serenity_ccache_path }} | tac | xargs touch -a -m -d "2018-10-10T09:53:07Z"
CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -s
CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -z
displayName: 'Configure Serenity ccache'
- ${{ if eq(parameters.with_remote_data_caches, true) }}:
- task: Cache@2
inputs:
key: '"time_zone_data" | Meta/CMake/time_zone_data.cmake | "$(timestamp)"'
restoreKeys: |
"time_zone_data" | Meta/CMake/time_zone_data.cmake
path: $(Build.SourcesDirectory)/${{ parameters.download_cache_path }}/TZDB
displayName: 'TimeZoneData Cache'
- task: Cache@2
inputs:
key: '"unicode_data" | Meta/CMake/unicode_data.cmake | "$(timestamp)"'
restoreKeys: |
"unicode_data" | Meta/CMake/unicode_data.cmake
path: $(Build.SourcesDirectory)/${{ parameters.download_cache_path }}/UCD
displayName: 'UnicodeData Cache'
- task: Cache@2
inputs:
key: '"unicode_locale" | Meta/CMake/locale_data.cmake | "$(timestamp)"'
restoreKeys: |
"unicode_locale" | Meta/CMake/locale_data.cmake
path: $(Build.SourcesDirectory)/${{ parameters.download_cache_path }}/CLDR
displayName: 'UnicodeLocale Cache'

View File

@ -1,218 +0,0 @@
parameters:
os: 'Linux'
fuzzer: 'NoFuzz'
lagom_lints: false
host_cc: 'cc'
host_cxx: 'cxx'
jobs:
- job: 'Lagom_${{ parameters.os }}_${{ parameters.fuzzer }}'
timeoutInMinutes: 0 # Setting to 0 means the maximum allowed timeout is used.
variables:
- name: SERENITY_CCACHE_DIR
value: $(Build.SourcesDirectory)/.ccache
- name: job_pool
${{ if eq(parameters.os, 'Linux') }}:
value: ubuntu-22.04
${{ if or(eq(parameters.os, 'macOS'), eq(parameters.os, 'Android')) }}:
value: macos-13
- name: toolchain
${{ if eq(parameters.fuzzer, 'Fuzz') }}:
value: '${{ parameters.host_cc }}_Fuzz'
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
value: '${{ parameters.host_cc }}'
- name: host-cc
value: '${{ parameters.host_cc }}'
- name: host-cxx
value: '${{ parameters.host_cxx }}'
- name: ndk_version # only relevant for Android
value: '26.1.10909125'
pool:
vmImage: $(job_pool)
steps:
- template: Setup.yml
parameters:
os: '${{ parameters.os }}'
- template: Caches.yml
parameters:
os: '${{ parameters.os }}'
arch: 'Lagom'
toolchain: '$(toolchain)'
download_cache_path: 'Meta/Lagom/caches'
serenity_ccache_path: '$(SERENITY_CCACHE_DIR)'
with_remote_data_caches: true
${{ if eq(parameters.os, 'macOS') }}:
ccache_version: 2
- ${{ if eq(parameters.os, 'Android') }}:
- script: |
yes | $ANDROID_SDK_ROOT/tools/bin/sdkmanager "ndk;$(ndk_version)"
displayName: "Install NDK $(ndk_version)"
- script: |
# Install AVD files
echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install 'system-images;android-30;google_apis;x86_64'
# Create emulator
echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd -n xamarin_android_emulator -k 'system-images;android-30;google_apis;x86_64' --force
$ANDROID_HOME/emulator/emulator -list-avds
echo "Starting emulator"
# Start emulator in background
nohup $ANDROID_HOME/emulator/emulator -avd xamarin_android_emulator -no-snapshot > /dev/null 2>&1 &
$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82'
$ANDROID_HOME/platform-tools/adb devices
echo "Emulator started"
displayName: "Start Android Emulator"
- task: Gradle@2
inputs:
workingDirectory: 'Ladybird/Android'
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
jdkVersionOption: '17'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'connectedAndroidTest'
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
SERENITY_CACHE_DIR: "$(Build.SourcesDirectory)/Meta/Lagom/caches"
displayName: "Build and Test in Android Emulator"
- ${{ elseif eq(parameters.fuzzer, 'Fuzz') }}:
- script: |
set -e
cmake -GNinja -B tools-build \
-DBUILD_LAGOM=OFF \
-DENABLE_LAGOM_CCACHE=ON \
-DCMAKE_INSTALL_PREFIX=tool-install \
-DCMAKE_C_COMPILER=$(host-cc) \
-DCMAKE_CXX_COMPILER=$(host-cxx) \
-Dpackage=LagomTools
ninja -C tools-build install
cmake -GNinja -B Build \
-DBUILD_LAGOM=ON \
-DENABLE_LAGOM_CCACHE=ON \
-DENABLE_FUZZERS_LIBFUZZER=ON \
-DENABLE_ADDRESS_SANITIZER=ON \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_PREFIX_PATH=tool-install
displayName: 'Create Build Environment'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- ${{ elseif eq(parameters.fuzzer, 'NoFuzz') }}:
- script: |
set -e
cmake -GNinja -B Build \
-DBUILD_LAGOM=ON \
-DENABLE_LAGOM_CCACHE=ON \
-DENABLE_LAGOM_LADYBIRD=ON \
-DINCLUDE_WASM_SPEC_TESTS=ON \
-DWASM_SPEC_TEST_SKIP_FORMATTING=ON \
-DENABLE_UNDEFINED_SANITIZER=ON \
-DENABLE_ADDRESS_SANITIZER=ON \
-DCMAKE_C_COMPILER=$(host-cc) \
-DCMAKE_CXX_COMPILER=$(host-cxx)
displayName: 'Create Build Environment'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom
env:
PATH: '$(PATH):$(Build.SourcesDirectory)/wabt-1.0.23/bin'
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- ${{ if not(eq(parameters.os, 'Android')) }}:
- script: |
set -e
cmake --build .
cmake --install . --strip --prefix $(Build.SourcesDirectory)/Meta/Lagom/Install
displayName: 'Build'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- ${{ if and(eq(parameters.fuzzer, 'NoFuzz'), not(eq(parameters.os, 'Android')) ) }}:
- script: |
set -e
ninja test
displayName: 'Test'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build
timeoutInMinutes: 60
env:
SERENITY_SOURCE_DIR: '$(Build.SourcesDirectory)'
CTEST_OUTPUT_ON_FAILURE: 1
ASAN_OPTIONS: 'strict_string_checks=1:check_initialization_order=1:strict_init_order=1:detect_stack_use_after_return=1:allocator_may_return_null=1'
UBSAN_OPTIONS: 'print_stacktrace=1:print_summary=1:halt_on_error=1'
TESTS_ONLY: 1
# Detect if any test dumps exist, which enables the next step to publish them as an artifact.
- bash: |
if [[ -d $(Build.SourcesDirectory)/Meta/Lagom/Build/Ladybird/test-dumps ]]; then
echo "##vso[task.setvariable variable=TestDumpsExist]true"
fi
condition: always()
- publish: $(Build.SourcesDirectory)/Meta/Lagom/Build/Ladybird/test-dumps
artifact: 'test-dumps-${{ parameters.os }}-${{ parameters.fuzzer }}'
condition: eq(variables.TestDumpsExist, 'true')
- ${{ if and(eq(parameters.fuzzer, 'NoFuzz'), eq(parameters.os, 'Linux') ) }}:
- script: |
./run.sh --remove-wpt-repository
displayName: 'WPT'
workingDirectory: $(Build.SourcesDirectory)/Tests/LibWeb/WPT/
env:
SERENITY_SOURCE_DIR: '$(Build.SourcesDirectory)'
QT_QPA_PLATFORM: 'offscreen'
- ${{ if and(eq(parameters.fuzzer, 'NoFuzz'), eq(parameters.os, 'macOS') ) }}:
- script: |
set -e
cmake -B Build -DENABLE_QT=ON
displayName: 'Enable the Ladybird Qt chrome'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- script: |
set -e
cmake --build .
displayName: 'Build Ladybird Qt chrome'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- ${{ if eq(parameters.lagom_lints, true) }}:
- script: |
set -e
./Meta/check-markdown.sh
./Meta/lint-gml-format.sh
git ls-files '*.ipc' | xargs ./Meta/Lagom/Build/bin/IPCMagicLinter
displayName: 'Run lints that require Lagom'
workingDirectory: $(Build.SourcesDirectory)/
env:
MARKDOWN_CHECK_BINARY: ./Meta/Lagom/Build/bin/markdown-check
GML_FORMAT: ./Meta/Lagom/Build/bin/gml-format
# FIXME: enable detect_stack_use_after_return=1 #7420
ASAN_OPTIONS: 'strict_string_checks=1:check_initialization_order=1:strict_init_order=1:detect_stack_use_after_return=0:allocator_may_return_null=1'
UBSAN_OPTIONS: 'print_stacktrace=1:print_summary=1:halt_on_error=1'
- script: |
CCACHE_DIR='$(SERENITY_CCACHE_DIR)' ccache --evict-older-than 1d
displayName: 'Prune obsolete ccache files'
- script: |
CCACHE_DIR='$(SERENITY_CCACHE_DIR)' ccache -s
displayName: 'Cache Stats'

View File

@ -1,137 +0,0 @@
parameters:
arch: 'x86_64'
coverage: 'OFF'
jobs:
- job: 'Serenity_Clang_${{ parameters.arch }}_Coverage_${{ parameters.coverage }}'
timeoutInMinutes: 0 # Setting to 0 means the maximum allowed timeout is used.
variables:
- name: LLVM_CCACHE_DIR
value: $(Build.SourcesDirectory)/Toolchain/.ccache
- name: SERENITY_CCACHE_DIR
value: $(Build.SourcesDirectory)/.ccache
pool:
vmImage: ubuntu-22.04
steps:
- template: Setup.yml
parameters:
os: 'Serenity'
- template: Caches.yml
parameters:
arch: '${{ parameters.arch }}'
coverage: '${{ parameters.coverage }}'
toolchain: 'clang'
download_cache_path: 'Build/caches'
toolchain_ccache_path: '$(LLVM_CCACHE_DIR)'
serenity_ccache_path: '$(SERENITY_CCACHE_DIR)'
- script: ./Toolchain/BuildClang.sh --ci
displayName: Build Toolchain
env:
TRY_USE_LOCAL_TOOLCHAIN: 'y'
- script: |
mkdir -p Build/superbuild
displayName: 'Create Build Directory'
- script: |
set -e
cmake -S Meta/CMake/Superbuild -B Build/superbuild -GNinja \
-DSERENITY_ARCH=${{ parameters.arch }} \
-DSERENITY_TOOLCHAIN=Clang \
-DENABLE_UNDEFINED_SANITIZER=ON \
-DUNDEFINED_BEHAVIOR_IS_FATAL=ON \
-DENABLE_USERSPACE_COVERAGE_COLLECTION=${{ parameters.coverage }} \
-DDUMP_REGIONS_ON_CRASH=ON \
-DENABLE_PCI_IDS_DOWNLOAD=OFF \
-DENABLE_USB_IDS_DOWNLOAD=OFF \
-DCMAKE_C_COMPILER=gcc-13 \
-DCMAKE_CXX_COMPILER=g++-13
displayName: 'Create Build Environment'
workingDirectory: $(Build.SourcesDirectory)
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- script: |
set -e
cmake --build ./Build/superbuild
displayName: 'Build'
workingDirectory: $(Build.SourcesDirectory)
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- script: |
set -e
ninja install && ninja qemu-image
displayName: 'Create RootFS'
workingDirectory: $(Build.SourcesDirectory)/Build/${{ parameters.arch }}clang
- script: |
set -e
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
sudo umount fsmount
displayName: 'Test'
workingDirectory: $(Build.SourcesDirectory)/Build/${{ parameters.arch }}clang
timeoutInMinutes: 60
env:
SERENITY_QEMU_CPU: 'max,vmx=off'
SERENITY_KERNEL_CMDLINE: 'graphics_subsystem_mode=off panic=shutdown system_mode=self-test'
SERENITY_RUN: 'ci'
- script: |
[ ! -e debug.log ] || cat debug.log
displayName: 'Print Target Logs'
workingDirectory: $(Build.SourcesDirectory)/Build/${{ parameters.arch }}clang
condition: failed()
- ${{ if eq(parameters.coverage, 'ON') }}:
- script: |
set -e
./Meta/analyze-qemu-coverage.sh
displayName: 'Aggregate Coverage Results'
workingDirectory: $(Build.SourcesDirectory)
env:
SERENITY_TOOLCHAIN: Clang
SERENITY_ARCH: ${{ parameters.arch }}
# FIXME: Deploy the static html pages somewhere
# FIXME: Alter script to also (instead?) produce a raw coverage.txt file for ingestion into sonar cloud
# Note: tmp_profile_data/Coverage.profdata has the entire combined profile data, but creating the raw txt requires
# all of the instrumented binaries and the profdata file.
- ${{ if eq(parameters.coverage, 'ON') }}:
- task: PublishPipelineArtifact@1
inputs:
targetPath: $(Build.SourcesDirectory)/Build/${{ parameters.arch }}clang/reports
artifactType: 'pipeline'
artifactName: 'Coverage'
- script: |
echo "##[section]Serenity Cache"
CCACHE_DIR='$(SERENITY_CCACHE_DIR)' ccache --evict-older-than 1d
displayName: 'Prune obsolete ccache files'
- script: |
echo "##[section]Toolchain Cache"
CCACHE_DIR='$(LLVM_CCACHE_DIR)' ccache -s
echo "##[section]Serenity Cache"
CCACHE_DIR='$(SERENITY_CCACHE_DIR)' ccache -s
displayName: 'Cache Stats'

View File

@ -1,41 +0,0 @@
parameters:
os: 'Linux'
steps:
- checkout: self
persistCredentials: true
- ${{ if eq(parameters.os, 'Serenity') }}:
- script: |
set -e
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main'
sudo apt-get update
sudo apt-get install clang-format-18 ccache e2fsprogs gcc-13 g++-13 libstdc++-13-dev libmpfr-dev libmpc-dev ninja-build qemu-utils qemu-system-i386 unzip lld
displayName: 'Install Dependencies'
- ${{ if eq(parameters.os, 'Linux') }}:
- script: |
set -e
sudo apt-get purge -y clang-13 clang-14 clang-15 gcc-10 gcc-11 gcc-12
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main'
sudo apt-get update
sudo apt-get install ccache clang-18 clang++-18 lld-18 ninja-build unzip qt6-base-dev qt6-tools-dev-tools libqt6svg6-dev qt6-multimedia-dev libgl1-mesa-dev libpulse-dev libssl-dev libegl1-mesa-dev
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100
wget https://github.com/WebAssembly/wabt/releases/download/1.0.23/wabt-1.0.23-ubuntu.tar.gz
tar -xzf ./wabt-1.0.23-ubuntu.tar.gz
rm ./wabt-1.0.23-ubuntu.tar.gz
displayName: 'Install Dependencies'
- ${{ if or(eq(parameters.os, 'macOS'), eq(parameters.os, 'Android') ) }}:
# macOS ships an ancient Bash 3.x by default
- script: |
set -e
brew install coreutils bash ninja wabt ccache unzip qt llvm@18
displayName: 'Install Dependencies'

View File

@ -5,7 +5,6 @@ SerenityOS is a graphical Unix-like operating system for x86-64 computers.
Ladybird is a cross-platform independent web browser built from SerenityOS components.
[![GitHub Actions Status](https://github.com/SerenityOS/serenity/workflows/Build,%20lint,%20and%20test/badge.svg)](https://github.com/SerenityOS/serenity/actions?query=workflow%3A"Build%2C%20lint%2C%20and%20test")
[![Azure DevOps Status](https://dev.azure.com/SerenityOS/SerenityOS/_apis/build/status/CI?branchName=master)](https://dev.azure.com/SerenityOS/SerenityOS/_build/latest?definitionId=1&branchName=master)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/serenity.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:serenity)
[![Sonar Cube Static Analysis](https://sonarcloud.io/api/project_badges/measure?project=SerenityOS_serenity&metric=ncloc)](https://sonarcloud.io/dashboard?id=SerenityOS_serenity)
[![Discord](https://img.shields.io/discord/830522505605283862.svg?logo=discord&logoColor=white&logoWidth=20&labelColor=7289DA&label=Discord&color=17cf48)](https://discord.gg/serenityos)