mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
Issue number: internal --------- <!-- 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. --> - Release workflows still inject a long-lived `NPM_TOKEN` via `.npmrc`, so publishes do not use npm’s trusted OIDC flow. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - The shared `actions/publish-npm` composite action now configures `setup-node` with the npm registry, upgrades npm in place, and publishes with `--provenance` without writing `.npmrc`. - `release-dev.yml`, `release-nightly.yml`, and `release-production.yml` call into that trusted flow by removing the token input and (for production) inlining the same OIDC setup before `npm run release.ci`. - Allows npm to authenticate through trusted publishing requirements [docs.npmjs.com/trusted-publishers](https://docs.npmjs.com/trusted-publishers). - Step names were refreshed with emojis, but there are no other behavioral changes. ## 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. --> - These changes align the Ionic release automation with npm’s trusted-publisher enforcement while keeping the existing Lerna build/publish process intact. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
55 lines
1.8 KiB
YAML
55 lines
1.8 KiB
YAML
name: 'Update Reference Screenshots'
|
||
description: 'Update Reference Screenshots'
|
||
|
||
on:
|
||
workflow_dispatch:
|
||
|
||
runs:
|
||
using: 'composite'
|
||
steps:
|
||
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||
with:
|
||
node-version: 24.x
|
||
- uses: actions/download-artifact@v6
|
||
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: 📸 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
|