servo/.github/workflows/scheduled-wpt-import.yml
Mukilan Thiyagarajan 88a35b3cc9
mach: adopt uv and avoid system python (#34632)
This allows us to use `uv` for:
1. Installing a pinned Python version
2. Installing the dependency packages using `uv`'s pip compatible interface.
4. Bootstrapping `mach` without a Python installion on the host, using `uv
   run`

This change also introduces a new 'composite' GitHub action to setup
python in the different CI workflows. There is no support for externally
managed python installations and virtual environments. These could be
added in the future.

Fixes #34095, #34547

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-12-16 09:20:37 +00:00

78 lines
2.6 KiB
YAML

name: WPT Import
on:
schedule:
# Run this job every Sunday at 00:00.
- cron: "0 0 * * 0"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
linux:
# This job is only useful when run on upstream servo.
if: github.repository == 'servo/servo' || github.event_name == 'workflow_dispatch'
name: Linux
uses: ./.github/workflows/linux.yml
with:
wpt-sync-from-upstream: true
wpt-layout: 'all'
unit-tests: false
sync:
# This job is only useful when run on upstream servo.
if: github.repository == 'servo/servo' || github.event_name == 'workflow_dispatch'
name: Synchronize WPT Nightly
runs-on: ubuntu-22.04
needs:
- "linux"
steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: wpt-full-logs-linux-layout-2013
- uses: actions/download-artifact@v4
with:
name: wpt-full-logs-linux-layout-2020
- name: Setup Python
uses: ./.github/actions/setup-python
- name: Prep environment
run: |
sudo apt update
python3 ./mach bootstrap
- name: Add upstream remote
run: |
git config --local user.email "ghbot+wpt-sync@servo.org"
git config --local user.name "WPT Sync Bot"
git remote add upstream https://github.com/servo/servo.git
git fetch --unshallow upstream
- name: Fetch upstream changes before syncing
run: |
./mach update-wpt --sync --patch
- name: Amend commit with test results
run: |
export CURRENT_DATE=$(date +"%d-%m-%Y")
echo $CURRENT_DATE
echo "CURRENT_DATE=$CURRENT_DATE" >> $GITHUB_ENV
./mach update-wpt linux-layout-2013/raw/*.log --legacy-layout
./mach update-wpt linux-layout-2020/raw/*.log
git add tests/wpt/meta tests/wpt/meta-legacy-layout
git commit -a --amend -s --no-edit
- name: Push changes
uses: ad-m/github-push-action@master
with:
branch: wpt_update_${{ env.CURRENT_DATE }}
- name: Open PR
env:
GH_TOKEN: ${{ secrets.WPT_SYNC_TOKEN }}
UPDATE_BRANCH: wpt_update_${{ env.CURRENT_DATE }}
run: |
BODY=$(cat <<EOF
Automated downstream sync of changes from upstream as of ${{ env.CURRENT_DATE }}
[no-wpt-sync]
EOF
)
gh pr create \
--title "Sync WPT with upstream (${{ env.CURRENT_DATE }})" \
--body "$BODY" --head ${{ env.UPDATE_BRANCH }}