mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
<!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> The Stencil Nightly Build workflow tests Ionic with the latest nightly build of Stencil. The first step of the workflow updates Stencil, builds Ionic core, and uploads the build files. Later steps download these build files. Core's updated package.json is not uploaded with the build files, so later steps are installing an old Stencil version, leading to conflicts. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> Add core's package.json to the artifact upload. This will make all later steps use the correct Stencil version. Seven of the tests run `git diff` to ensure tests did not cause changes in tracked files. Core's package.json would register as a change, so a new step reverts package.json before running `git diff`. ## Does this introduce a breaking change? - [ ] Yes - [X] No <!-- If this introduces a breaking change: 1. Describe the impact and migration path for existing applications below. 2. Update the BREAKING.md file with the breaking change. 3. Add "BREAKING CHANGE: [...]" to the commit description when merging. See https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer for more information. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. -->
59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
name: 'Update Reference Screenshots'
|
||
description: 'Update Reference Screenshots'
|
||
|
||
on:
|
||
workflow_dispatch:
|
||
|
||
runs:
|
||
using: 'composite'
|
||
steps:
|
||
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||
with:
|
||
node-version: 24.x
|
||
- uses: actions/download-artifact@v7
|
||
with:
|
||
path: ./artifacts
|
||
- name: 🔎 Extract Archives
|
||
# This finds all .zip files in the ./artifacts
|
||
# directory, including nested directories.
|
||
# It then unzips every .zip to the root directory
|
||
run: |
|
||
find . -type f -name 'UpdatedScreenshots-*.zip' -exec unzip -q -o -d ../ {} \;
|
||
shell: bash
|
||
working-directory: ./artifacts
|
||
- name: Clean core package.json
|
||
run: git checkout ./package.json
|
||
shell: bash
|
||
working-directory: ./core
|
||
- name: 📸 Push Screenshots
|
||
# Configure user as Ionitron
|
||
# and push only the changed .png snapshots
|
||
# to the remote branch.
|
||
# Non-Linux screenshots are in .gitignore
|
||
# to prevent local screenshots from getting
|
||
# pushed to Git.
|
||
run: |
|
||
git config user.name ionitron
|
||
git config user.email hi@ionicframework.com
|
||
|
||
# This adds an empty entry for new
|
||
# screenshot files so we can track them with
|
||
# git diff
|
||
git add src/\*.png -N
|
||
|
||
if git diff --exit-code; then
|
||
echo -e "\033[1;31m⚠️ Error: No new screenshots generated ⚠️\033[0m"
|
||
echo -e "\033[1;31mThis means that there were zero visual diffs when running screenshot tests.\033[0m"
|
||
echo -e "\033[1;31mMake sure you have pushed any code changes that would result in visual diffs.\033[0m"
|
||
exit 1
|
||
else
|
||
# This actually adds the contents
|
||
# of the screenshots (including new ones)
|
||
git add src/\*.png
|
||
git commit -m "chore(): add updated snapshots"
|
||
git push
|
||
fi
|
||
|
||
shell: bash
|
||
working-directory: ./core
|