mirror of
https://github.com/electron/electron.git
synced 2026-01-08 23:18:06 -05:00
* chore: bump chromium in DEPS to 142.0.7401.0
* 6911185: Reland "Send touch moves async immediately after scroll starts."
https://chromium-review.googlesource.com/c/chromium/src/+/6911185
* 6906887: mac: click through content area in main window
https://chromium-review.googlesource.com/c/chromium/src/+/6906887
* 6916667: Expose helper to eliminate duplicate recipes.
https://chromium-review.googlesource.com/c/chromium/src/+/6916667
* 6909842: Switch LegacyRenderWidgetHostHWND from atlcrack.h to msg_util.h.
https://chromium-review.googlesource.com/c/chromium/src/+/6909842
* 6884056: Remove the SecKeychain implementation for the Keychain interface
https://chromium-review.googlesource.com/c/chromium/src/+/6884056
* 6904906: Remove `WTF::` in renderer/core/[p-x].*/
https://chromium-review.googlesource.com/c/chromium/src/+/6904906
* 6556585: [persistent_cache]: PersistentCache for CodeCache
https://chromium-review.googlesource.com/c/chromium/src/+/6556585
* 6904864: Layout: Support abort on the text placeholder layout
https://chromium-review.googlesource.com/c/chromium/src/+/6904864
* chore: fixup patch indices
* chore: bump chromium in DEPS to 142.0.7402.0
* fixup! 6556585: [persistent_cache]: PersistentCache for CodeCache
* chore: fixup patch indices
* 6905244: [api] Remove deprecated `GetIsolate`
https://chromium-review.googlesource.com/c/v8/v8/+/6905244
* 6897694: Remove NativeTheme::UserHasContrastPreference().
https://chromium-review.googlesource.com/c/chromium/src/+/6897694
* 6897477: Remove GetPlatformHighContrastColorScheme() and enum.
https://chromium-review.googlesource.com/c/chromium/src/+/6897477
* 6918198: Reland "Rename display::Screen::GetScreen() to display::Screen::Get()"
https://chromium-review.googlesource.com/c/chromium/src/+/6918198
* 6907147: [LNA] add use counter for websocket mixed-content issues
https://chromium-review.googlesource.com/c/chromium/src/+/6907147
* 6914538: Replace WTF::String with blink::String
https://chromium-review.googlesource.com/c/website/+/6914538
* 6892538: [video pip] Allow touchscreen users to toggle live caption
https://chromium-review.googlesource.com/c/chromium/src/+/6892538
* chore: fix patch
* chore: bump chromium in DEPS to 142.0.7403.0
* build: remove ninja logs
* chore: fixup patch indices
* 6920670: [PDF] Change pdf_extension_util to return dictionaries
https://chromium-review.googlesource.com/c/chromium/src/+/6920670
* 6917864: Devirtualize and inline various NativeTheme getters.
https://chromium-review.googlesource.com/c/chromium/src/+/6917864
* 6920873: [PDF] Simplify PDFDocumentHelperClient::OnSaveURL()
https://chromium-review.googlesource.com/c/chromium/src/+/6920873
* build: don't kill blink/web_tests
* 6923655: Roll libc++ from 954086abf121 to b87b2bb112f8 (4 revisions)
https://chromium-review.googlesource.com/c/chromium/src/+/6923655
* 6905242: Reland "[CSP] Clarify report-only console messages."
https://chromium-review.googlesource.com/c/chromium/src/+/6905242
* fixup! 6897694: Remove NativeTheme::UserHasContrastPreference().
* chore: bump chromium in DEPS to 142.0.7405.0
* 6910012: [LNA] Enable LNA enforcement by default
https://chromium-review.googlesource.com/c/chromium/src/+/6910012
* 6929444: Combine GetInstanceForXXX() implementations.
https://chromium-review.googlesource.com/c/chromium/src/+/6929444
* 6927873: Rename native_widget_types.h -> native_ui_types.h
https://chromium-review.googlesource.com/c/chromium/src/+/6927873
* 6853978: Init perfetto really early in WebView
https://chromium-review.googlesource.com/c/chromium/src/+/6853978
* 6874886: Use only one picker observer to avoid getting duplicate notifications
https://chromium-review.googlesource.com/c/chromium/src/+/6874886
* chore: fixup patch indices
* fix: Protocol complex inline dtor
* chore: bump chromium in DEPS to 142.0.7407.0
* chore: bump chromium in DEPS to 142.0.7409.0
* chore: bump chromium in DEPS to 142.0.7411.0
* chore: bump chromium in DEPS to 142.0.7413.0
* fixup! 6905242: Reland "[CSP] Clarify report-only console messages."
* 6927233: Remove NativeTheme "use dark colors" bit.
https://chromium-review.googlesource.com/c/chromium/src/+/6927233
* chore: fixup patch indices
* 6899206: [PermissionOptions] Multi-state permission subscriptions & setting changes
https://chromium-review.googlesource.com/c/chromium/src/+/6899206
* chore: bump chromium in DEPS to 142.0.7415.0
* 6936895: [headless] Remove headless flag from views::Widget class
https://chromium-review.googlesource.com/c/chromium/src/+/6936895
We should probably followup on this to see if there is a way to do this without reverting this CL.
* 6937023: Reland "Use new DBus type system in dbus_xdg::Request"
https://chromium-review.googlesource.com/c/chromium/src/+/6937023
* chore: update patches
* 6944749: Add GN visibility list to //components/os_crypt/sync
https://chromium-review.googlesource.com/c/chromium/src/+/6944749
* Further replace sub_capture_target_version with CaptureVersion
https://chromium-review.googlesource.com/c/chromium/src/+/6935455
* fixup for lint
* chore: update filenames.libcxx.gni
* chore: bump chromium in DEPS to 142.0.7417.0
* 6944136: Reorder NativeTheme headers/.cc files.
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6944136
* 6939701: [DSSC][4] Make FSVCI objects aware of their capture-version-source
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6939701
* 6944404: Remove extraneous callback call
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6944404
* 6936124: [FPF-CI]: Introduce blink::NoiseToken for fingerprinting protection
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6936124
* chore: update patches
* fixup! 6927233: Remove NativeTheme "use dark colors" bit.
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6927233
* fixup! 6917864: Devirtualize and inline various NativeTheme getters.
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6917864
* 6937588: Add initial OsSettingsProvider object, supplying caret blink interval.
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6937588
* fixup! 6905242: Reland "[CSP] Clarify report-only console messages."
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6905242
* 6907515: Replace SingletonHwndObserver with a CallbackList on SingletonHwnd.
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6907515
* 6910482: [Save to Drive] Implement retry functionality
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6910482
* fixup! 6927233: Remove NativeTheme "use dark colors" bit.
Refs https://chromium-review.googlesource.com/c/chromium/src/+/6927233
* Revert "build: remove ninja logs"
This reverts commit 72874740fd.
* test: fix flakey test picked from PR 48205
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
Co-authored-by: Alice Zhao <alicelovescake@anthropic.com>
213 lines
8.9 KiB
YAML
213 lines
8.9 KiB
YAML
name: 'Checkout'
|
|
description: 'Checks out Electron and stores it in the AKS Cache'
|
|
inputs:
|
|
generate-sas-token:
|
|
description: 'Whether to generate and persist a SAS token for the item in the cache'
|
|
required: false
|
|
default: 'false'
|
|
use-cache:
|
|
description: 'Whether to persist the cache to the shared drive'
|
|
required: false
|
|
default: 'true'
|
|
target-platform:
|
|
description: 'Target platform, should be linux, win, macos'
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Set GIT_CACHE_PATH to make gclient to use the cache
|
|
shell: bash
|
|
run: |
|
|
echo "GIT_CACHE_PATH=$(pwd)/git-cache" >> $GITHUB_ENV
|
|
- name: Install Dependencies
|
|
uses: ./src/electron/.github/actions/install-dependencies
|
|
- name: Set Chromium Git Cookie
|
|
uses: ./src/electron/.github/actions/set-chromium-cookie
|
|
- name: Install Build Tools
|
|
uses: ./src/electron/.github/actions/install-build-tools
|
|
- name: Generate DEPS Hash
|
|
shell: bash
|
|
run: |
|
|
node src/electron/script/generate-deps-hash.js
|
|
DEPSHASH="v1-src-cache-$(cat src/electron/.depshash)"
|
|
echo "DEPSHASH=$DEPSHASH" >> $GITHUB_ENV
|
|
echo "CACHE_FILE=$DEPSHASH.tar" >> $GITHUB_ENV
|
|
if [ "${{ inputs.target-platform }}" = "win" ]; then
|
|
echo "CACHE_DRIVE=/mnt/win-cache" >> $GITHUB_ENV
|
|
else
|
|
echo "CACHE_DRIVE=/mnt/cross-instance-cache" >> $GITHUB_ENV
|
|
fi
|
|
- name: Generate SAS Key
|
|
if: ${{ inputs.generate-sas-token == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
curl --unix-socket /var/run/sas/sas.sock --fail "http://foo/$CACHE_FILE?platform=${{ inputs.target-platform }}&getAccountName=true" > sas-token
|
|
- name: Save SAS Key
|
|
if: ${{ inputs.generate-sas-token == 'true' }}
|
|
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
|
|
with:
|
|
path: sas-token
|
|
key: sas-key-${{ inputs.target-platform }}-${{ github.run_number }}-${{ github.run_attempt }}
|
|
enableCrossOsArchive: true
|
|
- name: Check If Cache Exists
|
|
id: check-cache
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ inputs.use-cache }}" == "false" ]]; then
|
|
echo "Not using cache this time..."
|
|
echo "cache_exists=false" >> $GITHUB_OUTPUT
|
|
else
|
|
cache_path=$CACHE_DRIVE/$CACHE_FILE
|
|
echo "Using cache key: $DEPSHASH"
|
|
echo "Checking for cache in: $cache_path"
|
|
if [ ! -f "$cache_path" ] || [ `du $cache_path | cut -f1` = "0" ]; then
|
|
echo "cache_exists=false" >> $GITHUB_OUTPUT
|
|
echo "Cache Does Not Exist for $DEPSHASH"
|
|
else
|
|
echo "cache_exists=true" >> $GITHUB_OUTPUT
|
|
echo "Cache Already Exists for $DEPSHASH, Skipping.."
|
|
fi
|
|
fi
|
|
- name: Check cross instance cache disk space
|
|
if: steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true'
|
|
shell: bash
|
|
run: |
|
|
# if there is less than 35 GB free space then creating the cache might fail so exit early
|
|
freespace=`df -m $CACHE_DRIVE | grep -w $CACHE_DRIVE | awk '{print $4}'`
|
|
freespace_human=`df -h $CACHE_DRIVE | grep -w $CACHE_DRIVE | awk '{print $4}'`
|
|
if [ $freespace -le 35000 ]; then
|
|
echo "The cross mount cache has $freespace_human free space which is not enough - exiting"
|
|
exit 1
|
|
else
|
|
echo "The cross mount cache has $freespace_human free space - continuing"
|
|
fi
|
|
- name: Add patch conflict problem matcher
|
|
shell: bash
|
|
run: echo "::add-matcher::src/electron/.github/problem-matchers/patch-conflict.json"
|
|
- name: Restore gitcache
|
|
if: steps.check-cache.outputs.cache_exists == 'false'
|
|
shell: bash
|
|
run: |
|
|
GIT_CACHE_TAR="$CACHE_DRIVE/gitcache.tar"
|
|
if [ ! -f "$GIT_CACHE_TAR" ]; then
|
|
echo "Git cache tar file does not exist, skipping restore"
|
|
exit 0
|
|
fi
|
|
echo "Restoring git cache from $GIT_CACHE_TAR to $GIT_CACHE_PATH"
|
|
mkdir -p $GIT_CACHE_PATH
|
|
tar -xf $GIT_CACHE_TAR -C $GIT_CACHE_PATH
|
|
- name: Gclient Sync
|
|
if: steps.check-cache.outputs.cache_exists == 'false'
|
|
shell: bash
|
|
run: |
|
|
e d gclient config \
|
|
--name "src/electron" \
|
|
--unmanaged \
|
|
${GCLIENT_EXTRA_ARGS} \
|
|
"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
|
|
|
|
if [ "$TARGET_OS" != "" ]; then
|
|
echo "target_os=['$TARGET_OS']" >> ./.gclient
|
|
fi
|
|
|
|
ELECTRON_USE_THREE_WAY_MERGE_FOR_PATCHES=1 e d gclient sync --with_branch_heads --with_tags -vv
|
|
if [[ "${{ inputs.is-release }}" != "true" ]]; then
|
|
# Re-export all the patches to check if there were changes.
|
|
python3 src/electron/script/export_all_patches.py src/electron/patches/config.json
|
|
cd src/electron
|
|
git update-index --refresh || true
|
|
if ! git diff-index --quiet HEAD --; then
|
|
# There are changes to the patches. Make a git commit with the updated patches
|
|
if node ./script/patch-up.js; then
|
|
echo
|
|
echo "======================================================================"
|
|
echo "Changes to the patches when applying, we have auto-pushed the diff to the current branch"
|
|
echo "A new CI job will kick off shortly"
|
|
echo "======================================================================"
|
|
exit 1
|
|
else
|
|
git add patches
|
|
GIT_COMMITTER_NAME="PatchUp" GIT_COMMITTER_EMAIL="73610968+patchup[bot]@users.noreply.github.com" git commit -m "chore: update patches" --author="PatchUp <73610968+patchup[bot]@users.noreply.github.com>"
|
|
# Export it
|
|
mkdir -p ../../patches
|
|
git format-patch -1 --stdout --keep-subject --no-stat --full-index > ../../patches/update-patches.patch
|
|
echo
|
|
echo "======================================================================"
|
|
echo "There were changes to the patches when applying."
|
|
echo "Check the CI artifacts for a patch you can apply to fix it."
|
|
echo "======================================================================"
|
|
echo
|
|
cat ../../patches/update-patches.patch
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "No changes to patches detected"
|
|
fi
|
|
fi
|
|
- name: Remove patch conflict problem matcher
|
|
shell: bash
|
|
run: |
|
|
echo "::remove-matcher owner=merge-conflict::"
|
|
echo "::remove-matcher owner=patch-conflict::"
|
|
- name: Upload patches stats
|
|
if: ${{ inputs.target-platform == 'linux' && github.ref == 'refs/heads/main' }}
|
|
shell: bash
|
|
run: |
|
|
npx node src/electron/script/patches-stats.mjs --upload-stats || true
|
|
# delete all .git directories under src/ except for
|
|
# third_party/angle/ and third_party/dawn/ because of build time generation of files
|
|
# gen/angle/commit.h depends on third_party/angle/.git/HEAD
|
|
# https://chromium-review.googlesource.com/c/angle/angle/+/2074924
|
|
# and dawn/common/Version_autogen.h depends on third_party/dawn/.git/HEAD
|
|
# https://dawn-review.googlesource.com/c/dawn/+/83901
|
|
# TODO: maybe better to always leave out */.git/HEAD file for all targets ?
|
|
- name: Delete .git directories under src to free space
|
|
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
cd src
|
|
( find . -type d -name ".git" -not -path "./third_party/angle/*" -not -path "./third_party/dawn/*" -not -path "./electron/*" ) | xargs rm -rf
|
|
- name: Minimize Cache Size for Upload
|
|
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
rm -rf src/android_webview
|
|
rm -rf src/ios/chrome
|
|
rm -rf src/third_party/blink/perf_tests
|
|
rm -rf src/chrome/test/data/xr/webvr_info
|
|
rm -rf src/third_party/angle/third_party/VK-GL-CTS/src
|
|
rm -rf src/third_party/swift-toolchain
|
|
rm -rf src/third_party/swiftshader/tests/regres/testlists
|
|
cp src/electron/.github/actions/checkout/action.yml ./
|
|
rm -rf src/electron
|
|
mkdir -p src/electron/.github/actions/checkout
|
|
mv action.yml src/electron/.github/actions/checkout
|
|
- name: Compress Src Directory
|
|
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
echo "Uncompressed src size: $(du -sh src | cut -f1 -d' ')"
|
|
tar -cf $CACHE_FILE src
|
|
echo "Compressed src to $(du -sh $CACHE_FILE | cut -f1 -d' ')"
|
|
cp ./$CACHE_FILE $CACHE_DRIVE/
|
|
- name: Persist Src Cache
|
|
if: ${{ steps.check-cache.outputs.cache_exists == 'false' && inputs.use-cache == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
final_cache_path=$CACHE_DRIVE/$CACHE_FILE
|
|
echo "Using cache key: $DEPSHASH"
|
|
echo "Checking path: $final_cache_path"
|
|
if [ ! -f "$final_cache_path" ]; then
|
|
echo "Cache key not found"
|
|
exit 1
|
|
else
|
|
echo "Cache key persisted in $final_cache_path"
|
|
fi
|
|
- name: Wait for active SSH sessions
|
|
shell: bash
|
|
if: always() && !cancelled()
|
|
run: |
|
|
while [ -f /var/.ssh-lock ]
|
|
do
|
|
sleep 60
|
|
done
|