diff --git a/.github/actions/cache-restore/action.yml b/.github/actions/cache-restore/action.yml deleted file mode 100644 index 39d87237ac9e..000000000000 --- a/.github/actions/cache-restore/action.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: 'Cache Restore Action' -description: 'Restores caches of downloaded files and build artifacts.' -author: 'Andrew Kaster ' - -inputs: - os: - description: 'Operating System to restore caches for' - required: true - default: 'Linux' - arch: - description: 'Target Architecture to restore caches for' - required: false - default: 'x86_64' - toolchain: - description: 'Toolchain to restore caches for (GNU or Clang)' - required: false - default: 'GNU' - cache_key_extra: - description: 'Code coverage setting, ON or OFF, or debug setting, ALL or NORMAL' - required: false - default: 'OFF' - ccache_version: - description: 'Increment this number if CI has trouble with ccache.' - required: false - default: '0' - ccache_path: - description: 'Path to the ccache directory' - required: false - default: '' - download_cache_path: - description: 'Path to the download cache directory' - required: false - default: 'caches' - -outputs: - ccache_primary_key: - description: 'Primary ccache key' - value: ${{ steps.ccache.outputs.cache-primary-key }} - -runs: - using: "composite" - steps: - - name: 'Date Stamp' - shell: bash - id: 'date-stamp' - run: | - echo "timestamp=$(date -u "+%Y%m%d%H%M_%S")" >> "$GITHUB_OUTPUT" - - - name: 'Compiler Cache' - uses: actions/cache/restore@v4 - id: 'ccache' - if: ${{ inputs.ccache_path != '' }} - with: - path: ${{ inputs.ccache_path }} - key: '"ccache" | "${{ inputs.os }}" | "${{ inputs.arch }}" | "${{ inputs.toolchain }}" | "${{ inputs.cache_key_extra }}" | "${{ inputs.ccache_version }}" | ${{ steps.date-stamp.outputs.timestamp }}' - restore-keys: | - "ccache" | "${{ inputs.os }}" | "${{ inputs.arch }}" | "${{ inputs.toolchain }}" | "${{ inputs.cache_key_extra }}" | "${{ inputs.ccache_version }}" - - - name: 'Configure Compiler Cache' - if: ${{ inputs.ccache_path != '' }} - shell: bash - run: | - CCACHE_DIR=${{ inputs.ccache_path }} ccache -M 0 - - # Reset all ccache modification dates to a known epoch. This provides a baseline that we can prune against. - find ${{ inputs.ccache_path }} | tac | xargs touch -a -m -d "2018-10-10T09:53:07Z" - - CCACHE_DIR=${{ inputs.ccache_path }} ccache -s - CCACHE_DIR=${{ inputs.ccache_path }} ccache -z - - - name: Export vcpkg GitHub Actions cache environment variables - uses: actions/github-script@v7 - with: - script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); diff --git a/.github/actions/cache-save/action.yml b/.github/actions/cache-save/action.yml deleted file mode 100644 index 591e5378b9eb..000000000000 --- a/.github/actions/cache-save/action.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: 'Cache Save Action' -description: 'Saves caches of build artifacts.' -author: 'Andrew Kaster ' - -inputs: - arch: - description: 'Target Architecture to restore caches for' - required: false - default: 'x86_64' - ccache_path: - description: 'Path to the ccache directory' - required: false - default: '' - ccache_primary_key: - description: 'Primary ccache key' - required: false - default: '' - -runs: - using: "composite" - steps: - - name: 'Prune obsolete ccache files' - shell: bash - if: ${{ inputs.ccache_path != '' }} - run: | - CCACHE_DIR=${{ inputs.ccache_path }} ccache --evict-older-than=1d - - - name: 'Compiler Cache' - uses: actions/cache/save@v4 - if: ${{ inputs.ccache_path != '' }} - with: - path: ${{ inputs.ccache_path }} - key: ${{ inputs.ccache_primary_key }} - - - name: 'Cache Stats' - shell: bash - run: | - CCACHE_DIR=${{ inputs.ccache_path }} ccache -s diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a1b637870dd..b86fa1b2b6be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,39 +4,20 @@ on: [push, pull_request] concurrency: group: ${{ github.workflow }}-${{ github.head_ref || format('{0}-{1}', github.ref, github.run_number) }} - cancel-in-progress: true jobs: Lagom: - if: github.repository == 'LadybirdBrowser/ladybird' strategy: fail-fast: false matrix: os_name: ['Linux'] - os: [ubuntu-24.04] + os: [depot-ubuntu-24.04, depot-ubuntu-22.04, depot-ubuntu-24.04-8, depot-ubuntu-22.04-8, depot-ubuntu-24.04-16, depot-ubuntu-22.04-16, depot-ubuntu-24.04-32, depot-ubuntu-22.04-32] + fuzzer: ['NO_FUZZ'] toolchain: ['GNU'] clang_plugins: [false] - include: - - os_name: 'Linux' - os: ubuntu-24.04 - fuzzer: 'NO_FUZZ' - toolchain: 'Clang' - clang_plugins: true - - - os_name: 'macOS' - os: macos-14 - fuzzer: 'NO_FUZZ' - toolchain: 'Clang' - clang_plugins: false - - - os_name: 'Linux' - os: ubuntu-24.04 - fuzzer: 'FUZZ' - toolchain: 'Clang' - clang_plugins: false uses: ./.github/workflows/lagom-template.yml with: diff --git a/.github/workflows/dev-container.yml b/.github/workflows/dev-container.yml deleted file mode 100644 index 4dae7dc2f3fa..000000000000 --- a/.github/workflows/dev-container.yml +++ /dev/null @@ -1,39 +0,0 @@ -# This workflow builds a docker image with the Dev Container CLI (https://github.com/devcontainers/cli) -# -name: 'Build Dev Container Image' -on: - workflow_dispatch: - push: - paths: - - '.devcontainer/**' - schedule: - # https://crontab.guru/#0_0_*_*_1 - - cron: '0 0 * * 1' - -permissions: - contents: read - # Push images to GHCR. - packages: write - -jobs: - build: - if: github.repository == 'LadybirdBrowser/ladybird' - runs-on: ubuntu-latest - steps: - - - name: Checkout - uses: actions/checkout@v4 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Base Dev Container Image - uses: devcontainers/ci@v0.3 - with: - imageName: ghcr.io/ladybirdbrowser/ladybird-devcontainer - imageTag: base,latest - push: always diff --git a/.github/workflows/ladybird-js-artifacts.yml b/.github/workflows/ladybird-js-artifacts.yml index 44996e1c6259..064d76a8dd06 100644 --- a/.github/workflows/ladybird-js-artifacts.yml +++ b/.github/workflows/ladybird-js-artifacts.yml @@ -11,7 +11,6 @@ env: jobs: build-and-package: runs-on: ${{ matrix.os }} - if: always() && github.repository == 'LadybirdBrowser/ladybird' && github.ref == 'refs/heads/master' strategy: fail-fast: false matrix: @@ -37,16 +36,6 @@ jobs: os: ${{ matrix.os_name }} arch: 'Lagom' - - name: Restore Caches - uses: ./.github/actions/cache-restore - id: 'cache-restore' - with: - os: ${{ matrix.os_name }} - arch: 'Lagom' - cache_key_extra: 'LibJS Artifacts' - ccache_path: ${{ env.CCACHE_DIR }} - download_cache_path: ${{ github.workspace }}/Build/caches - - name: Create build directory Ubuntu run: | cmake --preset CI -B Build \ @@ -73,17 +62,3 @@ jobs: run: | ninja js cpack - - - name: Save Caches - uses: ./.github/actions/cache-save - with: - arch: 'Lagom' - ccache_path: ${{ env.CCACHE_DIR }} - ccache_primary_key: ${{ steps.cache-restore.outputs.ccache_primary_key }} - - - name: Upload js package - uses: actions/upload-artifact@v4 - with: - name: ladybird-js-${{ matrix.package_type }} - path: Build/ladybird-js*.tar.gz - retention-days: 7 diff --git a/.github/workflows/lagom-template.yml b/.github/workflows/lagom-template.yml index 168943bee182..3aef83bb3eda 100644 --- a/.github/workflows/lagom-template.yml +++ b/.github/workflows/lagom-template.yml @@ -83,17 +83,6 @@ jobs: echo "cmake_options=" >> "$GITHUB_OUTPUT" fi - - name: Restore Caches - uses: ./.github/actions/cache-restore - id: 'cache-restore' - with: - os: ${{ inputs.os_name }} - arch: 'Lagom' - toolchain: ${{ inputs.toolchain }} - cache_key_extra: ${{ steps.build-parameters.outputs.ccache_key }} - ccache_path: ${{ env.CCACHE_DIR }} - download_cache_path: ${{ github.workspace }}/Build/caches - - name: Set dynamic environment variables run: | # Note: Required for vcpkg to use this compiler for its own builds. @@ -167,13 +156,6 @@ jobs: working-directory: ${{ github.workspace }}/Build run: cmake --build . - - name: Save Caches - uses: ./.github/actions/cache-save - with: - arch: 'Lagom' - ccache_path: ${{ env.CCACHE_DIR }} - ccache_primary_key: ${{ steps.cache-restore.outputs.ccache_primary_key }} - # === TEST === - name: Test @@ -183,21 +165,3 @@ jobs: env: TESTS_ONLY: 1 - - name: Upload LibWeb Test Artifacts - if: ${{ always() && inputs.fuzzer == 'NO_FUZZ' }} - uses: actions/upload-artifact@v4 - with: - name: libweb-test-artifacts-${{ inputs.os_name }} - path: ${{ github.workspace }}/Build/Ladybird/test-dumps - retention-days: 7 - if-no-files-found: ignore - - - name: Lints - if: ${{ inputs.os_name == 'Linux' && inputs.fuzzer == 'NO_FUZZ' }} - working-directory: ${{ github.workspace }} - run: | - set -e - git ls-files '*.ipc' | xargs ./Build/bin/IPCMagicLinter - env: - 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' diff --git a/.github/workflows/libjs-test262.yml b/.github/workflows/libjs-test262.yml deleted file mode 100644 index 7bfcc415fe03..000000000000 --- a/.github/workflows/libjs-test262.yml +++ /dev/null @@ -1,156 +0,0 @@ -name: Run test262 and test-wasm - -on: [push] - -env: - LADYBIRD_SOURCE_DIR: ${{ github.workspace }} - VCPKG_ROOT: ${{ github.workspace }}/Toolchain/Tarballs/vcpkg - -jobs: - run_and_update_results: - runs-on: test262-runner - if: always() && github.repository == 'LadybirdBrowser/ladybird' && github.ref == 'refs/heads/master' - - concurrency: libjs-test262 - - steps: - - name: Cleanup - run: | - echo "Cleaning up previous run" - rm -rf "${{ github.workspace }}/*" - - - name: Checkout LadybirdBrowser/ladybird - uses: actions/checkout@v4 - - - name: Checkout LadybirdBrowser/libjs-test262 - uses: actions/checkout@v4 - with: - repository: LadybirdBrowser/libjs-test262 - path: libjs-test262 - - - name: Checkout LadybirdBrowser/libjs-data - uses: actions/checkout@v4 - with: - repository: LadybirdBrowser/libjs-data - path: libjs-data - - - name: Checkout tc39/test262 - uses: actions/checkout@v4 - with: - repository: tc39/test262 - path: test262 - - - name: Checkout tc39/test262-parser-tests - uses: actions/checkout@v4 - with: - repository: tc39/test262-parser-tests - path: test262-parser-tests - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y ninja-build unzip gcc-13 g++-13 jq wget curl zip tar autoconf autoconf-archive automake nasm pkg-config libgl1-mesa-dev rsync - test -e /opt/wabt-1.0.35 || ( - cd /tmp - wget https://github.com/WebAssembly/wabt/releases/download/1.0.35/wabt-1.0.35-ubuntu-20.04.tar.gz - sudo tar xf wabt-1.0.35-ubuntu-20.04.tar.gz -C /opt - rm wabt-1.0.35-ubuntu-20.04.tar.gz - ) - # FIXME: Just use the setup action - ./Toolchain/BuildVcpkg.sh --ci - - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - - name: Install Python dependencies - # The setup-python action set default python to python3.x. Note that we are not using system python here. - run: | - python -m pip install --upgrade pip - pip install -r libjs-test262/requirements.txt - - - name: Check versions - run: set +e; g++ --version; g++-13 --version; python --version; python3 --version; ninja --version - - - name: Restore Caches - uses: ./.github/actions/cache-restore - with: - os: 'Linux' - arch: 'Lagom' - download_cache_path: ${{ github.workspace }}/libjs-test262/Build/caches - - - name: Get previous results - run: | - mkdir -p old-libjs-data - cp -R libjs-data/test262 libjs-data/wasm old-libjs-data - - - name: Build test262-runner, test-js and test-wasm - run: | - # FIXME: Why does vcpkg need this? - # Running as a normal user would make this a non-issue though - export HOME=${{ github.workspace }}/home - mkdir -p $HOME - env PATH="/opt/wabt-1.0.35/bin:$PATH" \ - CC=gcc-13 \ - CXX=g++-13 \ - cmake --preset CI -B libjs-test262/Build \ - -DCMAKE_C_COMPILER=gcc-13 \ - -DCMAKE_CXX_COMPILER=g++-13 \ - -DWASM_SPEC_TEST_SKIP_FORMATTING=ON \ - -DINCLUDE_WASM_SPEC_TESTS=ON \ - -DENABLE_GUI_TARGETS=OFF - ninja -C libjs-test262/Build test262-runner test-js test-wasm - - - name: Run test262 and test262-parser-tests - working-directory: libjs-test262 - run: | - python3 run_all_and_update_results.py \ - --serenity .. \ - --test262 ../test262 \ - --test262-parser-tests ../test262-parser-tests \ - --results-json ../libjs-data/test262/results.json \ - --per-file-output ../libjs-data/test262/per-file-master.json - - - name: Run test-wasm - working-directory: libjs-test262 - run: | - Build/bin/test-wasm --per-file Build/Lagom/Userland/Libraries/LibWasm/Tests > ../libjs-data/wasm/per-file-master.json || true - jq -nc -f /dev/stdin <<-EOF --slurpfile previous ../libjs-data/wasm/results.json --slurpfile details ../libjs-data/wasm/per-file-master.json > wasm-new-results.json - \$details[0] as \$details | \$previous[0] + [{ - "commit_timestamp": $(git -C .. log -1 --format=%ct), - "run_timestamp": $(date +%s), - "versions": { - "serenity": "$(git -C .. rev-parse HEAD)" - }, - "tests": { - "spectest": { - "duration": (\$details.duration), - "results": { - "total": (\$details.results | keys | length), - "passed": ([\$details.results | values[] | select(. == "PASSED")] | length), - "failed": ([\$details.results | values[] | select(. == "FAILED")] | length), - "skipped": ([\$details.results | values[] | select(. == "SKIPPED")] | length), - "process_error": ([\$details.results | values[] | select(. == "PROCESS_ERROR")] | length) - } - } - } - }] - EOF - mv wasm-new-results.json ../libjs-data/wasm/results.json - - - name: Compare test262 results - run: ./libjs-test262/per_file_result_diff.py -o old-libjs-data/test262/per-file-master.json -n libjs-data/test262/per-file-master.json - - - name: Compare Wasm results - run: ./libjs-test262/per_file_result_diff.py -o old-libjs-data/wasm/per-file-master.json -n libjs-data/wasm/per-file-master.json - - - name: Deploy to GitHub - uses: JamesIves/github-pages-deploy-action@v4.6.8 - with: - git-config-name: LadybirdBot - git-config-email: ladybirdbot@ladybird.org - branch: master - repository-name: LadybirdBrowser/libjs-data - token: ${{ secrets.LADYBIRD_BOT_TOKEN }} - folder: libjs-data diff --git a/.github/workflows/lint-code.yml b/.github/workflows/lint-code.yml deleted file mode 100644 index dfbb66830b33..000000000000 --- a/.github/workflows/lint-code.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Lint Code - -on: [ push, pull_request ] - -jobs: - lint: - runs-on: macos-14 - if: always() && github.repository == 'LadybirdBrowser/ladybird' - - steps: - - uses: actions/checkout@v4 - - - name: Set Up Environment - shell: bash - run: | - set -e - - brew install curl flake8 llvm@18 ninja shellcheck swift-format unzip - - # Note: gn isn't available in homebrew :( - # Corresponds to https://gn.googlesource.com/gn/+/225e90c5025bf74f41dbee60d9cde4512c846fe7 - curl -L -o gn-mac-arm64.zip "https://chrome-infra-packages.appspot.com/dl/gn/gn/mac-arm64/+/786UV5-XW0Bz6QnRFxKtnzTSVq0ta5AU1KXRJs-ZNwcC" - unzip gn-mac-arm64.zip -d ${{ github.workspace }}/bin - chmod +x ${{ github.workspace }}/bin/gn - echo "${{ github.workspace }}/bin" >> $GITHUB_PATH - echo -n "gn version: " - ${{ github.workspace}}/bin/gn --version - - - name: Install JS Dependencies - shell: bash - run: npm install -g prettier@2.7.1 - - - name: Lint - run: ${{ github.workspace }}/Meta/lint-ci.sh diff --git a/.github/workflows/lint-commits.yml b/.github/workflows/lint-commits.yml deleted file mode 100644 index b4d27a8e0c85..000000000000 --- a/.github/workflows/lint-commits.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Lint Commit Messages - -on: [pull_request_target] - -# Make sure to update Meta/lint-commit.sh to match this script when adding new checks! -# (… but don't accept overlong 'fixup!' commit descriptions.) - -jobs: - lint: - runs-on: ubuntu-24.04 - if: always() && github.repository == 'LadybirdBrowser/ladybird' - - steps: - - name: Lint PR commits - uses: actions/github-script@v7 - with: - script: | - const excludedBotIds = [ - 49699333, // dependabot[bot] - ]; - const rules = [ - { - pattern: /^[^\r]*$/, - error: "Commit message contains CRLF line breaks (only unix-style LF linebreaks are allowed)", - }, - { - pattern: /^.+(\r?\n(\r?\n.*)*)?$/, - error: "Empty line between commit title and body is missing", - }, - { - pattern: /^.{0,72}(?:\r?\n(?:(.{0,72})|(.*?([a-z]+:\/\/)?(([a-zA-Z0-9_]|-)+\.)+[a-z]{2,}(:\d+)?([a-zA-Z_0-9@:%\+.~\?&/=]|-)+).*?))*$/, - error: "Commit message lines are too long (maximum allowed is 72 characters, except for URLs)", - }, - { - pattern: /^((?!^Merge branch )[\s\S])*$/, - error: "Commit is a git merge commit, use the rebase command instead", - }, - { - pattern: /^\S.*?\S: .+/, - error: "Missing category in commit title (if this is a fix up of a previous commit, it should be squashed)", - }, - { - pattern: /^\S.*?: [A-Z0-9]/, - error: "First word of commit after the subsystem is not capitalized", - }, - { - pattern: /^.+[^.\n](\r?\n.*)*$/, - error: "Commit title ends in a period", - }, - { - pattern: /^((?!Signed-off-by: )[\s\S])*$/, - error: "Commit body contains a Signed-off-by tag", - }, - ]; - - const { repository, pull_request } = context.payload; - - // NOTE: This maxes out at 250 commits. If this becomes a problem, see: - // https://octokit.github.io/rest.js/v18#pulls-list-commits - const opts = github.rest.pulls.listCommits.endpoint.merge({ - owner: repository.owner.login, - repo: repository.name, - pull_number: pull_request.number, - }); - const commits = await github.paginate(opts); - - const errors = []; - for (const { sha, commit: { message }, author } of commits) { - if (author !== null && excludedBotIds.includes(author.id)) { - continue; - } - const commitErrors = []; - for (const { pattern, error } of rules) { - if (!pattern.test(message)) { - commitErrors.push(error); - } - } - if (commitErrors.length > 0) { - const title = message.split("\n")[0]; - errors.push([`${title} (${sha}):`, ...commitErrors].join("\n ")); - } - } - - if (errors.length > 0) { - core.setFailed(`One or more of the commits in this PR do not match the code submission policy:\n\n${errors.join("\n")}`); - } - - - name: Comment on PR - if: ${{ failure() && !github.event.pull_request.draft }} - uses: IdanHo/comment-on-pr@63ea2bf352997c66e524b8b5be7a79163fb3a88a - env: - GITHUB_TOKEN: ${{ secrets.LADYBIRD_BOT_TOKEN }} - with: - msg: "Hello!\n\nOne or more of the commit messages in this PR do not match the Ladybird [code submission policy](https://github.com/LadybirdBrowser/ladybird/blob/master/CONTRIBUTING.md#code-submission-policy), please check the `lint_commits` CI job for more details on which commits were flagged and why.\nPlease do not close this PR and open another, instead modify your commit message(s) with [git commit --amend](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message) and force push those changes to update this PR." diff --git a/.github/workflows/nightly-android.yml b/.github/workflows/nightly-android.yml deleted file mode 100644 index b610d649068e..000000000000 --- a/.github/workflows/nightly-android.yml +++ /dev/null @@ -1,105 +0,0 @@ -name: Nightly Android - -on: - # Automatically run at the end of every day. - schedule: - - cron: '0 0 * * *' - -env: - # runner.workspace = /home/runner/work/ladybird - # github.workspace = /home/runner/work/ladybird/ladybird - LADYBIRD_SOURCE_DIR: ${{ github.workspace }} - CCACHE_DIR: ${{ github.workspace }}/.ccache - VCPKG_ROOT: ${{ github.workspace }}/Toolchain/Tarballs/vcpkg - VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || format('{0}-{1}', github.ref, github.run_number) }} - cancel-in-progress: true - -jobs: - CI: - runs-on: ${{ matrix.os }} - if: always() && github.repository == 'LadybirdBrowser/ladybird' && github.ref == 'refs/heads/master' - strategy: - fail-fast: false - matrix: - os_name: ['Android'] - os: [macos-14] - - steps: - - uses: actions/checkout@v4 - - - name: Set Up Environment - uses: ./.github/actions/setup - with: - os: ${{ matrix.os_name }} - arch: 'Lagom' - - - name: Set Up Java - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 17 - - - name: Set Up Gradle - uses: gradle/actions/setup-gradle@v4 - - # === PREPARE FOR BUILDING === - - - name: Restore Caches - uses: ./.github/actions/cache-restore - id: 'cache-restore' - with: - os: ${{ matrix.os_name }} - arch: 'Lagom' - cache_key_extra: 'Nightly Android' - ccache_path: ${{ env.CCACHE_DIR }} - download_cache_path: ${{ github.workspace }}/Build/caches - - - name: Assign Build Parameters - id: 'build-parameters' - run: | - echo "host_cc=$(xcrun --find clang)" >> "$GITHUB_OUTPUT" - echo "host_cxx=$(xcrun --find clang++)" >> "$GITHUB_OUTPUT" - - - name: Install NDK - run: | - yes | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --licenses - yes | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "platform-tools" "build-tools;32.0.0" "platforms;android-34" - yes | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "ndk;26.1.10909125" - - - name: Start Android Emulator - run: | - # 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}/cmdline-tools/latest/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" - - # === BUILD === - - - name: Build and Test - working-directory: ${{ github.workspace }}/Ladybird/Android - run: ./gradlew connectedAndroidTest - env: - GRADLE_OPTS: '-Xmx3072m' - SERENITY_CACHE_DIR: ${{ github.workspace }}/Build/caches - - - name: Save Caches - uses: ./.github/actions/cache-save - with: - arch: 'Lagom' - ccache_path: ${{ env.CCACHE_DIR }} - ccache_primary_key: ${{ steps.cache-restore.outputs.ccache_primary_key }} diff --git a/.github/workflows/notes-push.yml b/.github/workflows/notes-push.yml deleted file mode 100644 index a5bb21bd13a8..000000000000 --- a/.github/workflows/notes-push.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Push notes -on: - push: - branches: - - master -permissions: - contents: write -jobs: - build: - if: github.repository == 'LadybirdBrowser/ladybird' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: fregante/setup-git-user@v2 - - run: | - git fetch origin "refs/notes/*:refs/notes/*" - curl -fsSLO https://sideshowbarker.github.io/git-gloss/git-gloss && bash ./git-gloss - git push origin "refs/notes/*" || true - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}