Commit Graph

351 Commits

Author SHA1 Message Date
Sean Perkins
c0875573be Merge remote-tracking branch 'origin/main' into workspace-test 2024-01-29 10:55:53 -05:00
Maria Hutt
aecbc92e30 refactor(ga-screenshots): option to test single component (#27841)
Issue number: N/A

---------

<!-- 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. -->

All the E2E tests are run when performing the "Update Reference
Screenshots" GitHub actions.

![Screenshot 2024-01-25 at 1 31
15 PM](https://github.com/ionic-team/ionic-framework/assets/13530427/bc27156b-bd91-446a-8878-0a3d8676b103)


## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- All E2E tests still run as default.
- The GH action has the option to run a specific component instead of
all tests.
- A specified component has the option to run all tests that include the
component's name in the file path
- A specified component has the option to run all tests that are in the
component's folder
- If a single component is selected, then the default is to only run
tests inside it's folder.

![Screenshot 2024-01-25 at 1 30
34 PM](https://github.com/ionic-team/ionic-framework/assets/13530427/0143fc0b-c7e7-4312-b7ea-e42a79dc7e09)


## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

How to test:

1. Create a new branch based off this one
2. Make a style change
3. Push it to the new branch
4. Update the reference images using the new branch
5. This will show you all the options

Recommended to test:
- a component with the ion prefix (`ion-button`)
- a component without the prefix (`button`)
- a component that doesn't exist (`random-component`)
- no provided component, leave the first input blank
- the checkbox

---------

Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com>
2024-01-26 19:26:22 +00:00
Liam DeBeasi
594925ea78 chore: sync 2024-01-25 13:15:39 -05:00
Liam DeBeasi
9a092c03cc chore: assign team members instead of members from team (#28880)
The token I was using didn't have the correct permissions, and I need to
figure out how to generate a new token (I don't think I have access to
the account where these tokens live). For now, I'm going to hard code
the team members until I can figure out the token access out.
2024-01-25 15:53:10 +00:00
Liam DeBeasi
a3ebca0f26 chore(ci): auto assign issues (#28873)
To make it easy for the team to quickly triage issues, we'd like to
automatically assign issues to team members at random. This PR use
https://github.com/marketplace/actions/auto-assign-issue to assign 1
member of the `framework` GitHub team to be the person to triage.
2024-01-24 22:49:16 +00:00
Liam DeBeasi
e86f4f1cc9 chore(ci): do not publish GitHub releases for nightlies (#28853)
Publishing GitHub releases for each nightly is creating more noise than
the team would like. As a result, we are going to stop publishing the
GitHub release. However, nightly builds will continue to automatically
release. Developers can look at the commits in `main` to determine if a
commit is in a nightly build:
https://github.com/ionic-team/ionic-framework
2024-01-22 15:15:24 +00:00
Liam DeBeasi
0860ea0951 chore: workflow pulls correct version of branch 2024-01-17 09:39:57 -05:00
Liam DeBeasi
535b8ed724 chore(ci): use correct github credentials for pushing (#28806)
The update-package-lock job did not configure Git credentials correctly.
As a result, the job is unable to push the `package-lock.json` changes
to the repo:
https://github.com/ionic-team/ionic-framework/actions/runs/7476310958/job/20346663176

This PR configures the job with the correct credentials.
2024-01-10 16:47:44 +00:00
Liam DeBeasi
28752acebd chore(ci): checkout files when updating package-lock (#28778)
In https://github.com/ionic-team/ionic-framework/pull/28697 I moved the
package-lock work to its own step to lets us re-run that if it fails.
However, I forgot to checkout the project files in that step, so there
was no `package-lock.json` file to update [resulting in an
error](https://github.com/ionic-team/ionic-framework/actions/runs/7398703880/job/20128761433).
2024-01-09 15:58:22 +00:00
Liam DeBeasi
86e96f7fce chore: end holiday triage 2023 (#28793)
Reverts ionic-team/ionic-framework#28757
2024-01-08 18:48:44 +00:00
Sean Perkins
8156a00144 Merge remote-tracking branch 'origin/main' into workspace-test 2023-12-28 14:32:10 -05:00
Sean Perkins
7bb19b83bf chore: update contributing guide for pnpm 2023-12-26 16:06:24 -05:00
Liam DeBeasi
da820b830e chore: start holiday triage 2023 (#28757)
This PR begins holiday triage mode for the Ionic Framework repo.
2023-12-21 21:48:19 +00:00
Liam DeBeasi
ae39ce8682 chore: sync with main 2023-12-19 11:58:49 -05:00
Liam DeBeasi
5d3bf9818d chore(ci): package-lock is updated from separate job (#28697)
After each release, we need to update the local `package-lock.json`
dependencies. We do this via a `npm install --package-lock-only`
command. However, this command can fail for reasons such as a connection
timeout. When this happens, the package-lock files do not get updated.

The problem is this action is also done in the same job as generating
the changelog and creating the GitHub release. This operations cannot be
re-done. As a result, we cannot simply re-run this job and try updating
the package-lock files again.

This PR changes the workflow to split the package-lock update out to its
own job. In the event that this job fails, we can re-run only this job
and leave the other jobs untouched.
2023-12-19 16:43:45 +00:00
Liam DeBeasi
5053e53749 fix dep install 2023-12-19 11:43:05 -05:00
Liam DeBeasi
1dfa61a9b8 install deps before creating test app 2023-12-18 22:19:53 -05:00
Liam DeBeasi
8e9677ed46 run tests with pnpm 2023-12-18 22:00:09 -05:00
Liam DeBeasi
2980a37463 try new way of setting token 2023-12-18 19:41:14 -05:00
Liam DeBeasi
c0a3301994 remove dist path for angular-server 2023-12-18 19:26:46 -05:00
Liam DeBeasi
9bad82a0c4 use pnpm exec for playwright 2023-12-18 17:31:05 -05:00
Liam DeBeasi
4e94176b34 chore: sync 2023-12-18 17:05:43 -05:00
Liam DeBeasi
ec07e70d99 chore: update PR template for breaking changes (#28698)
The team had feedback during a sprint retro that the breaking change
process documentation was a bit spread out. In particular, some team
members were not clear that you need to a) update the breaking.md file
and b) add the "BREAKING CHANGE" comment to the commit description.

This PR adds both of these things are comments for awareness.
2023-12-13 18:27:12 +00:00
Liam DeBeasi
6f9ee6024b chore: add resolves to PR template (#28693)
I've noticed a few instances where the team forgets to add the
"resolves" keyword (or similar "closes"/"fixes" keywords) when linking a
PR to an issue. GitHub will not link the PR with the issue and will not
close the issue on PR merge unless one of these keywords is used.

I've updated the PR template to add the "resolves" keyword so team
members don't need to worry about remembering to add it.
2023-12-12 15:14:21 +00:00
Liam DeBeasi
4847488090 chore(ci): update labeler workflow for labeler@v5 (#28627)
Issue number: N/A

---------

<!-- 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 labeler action is currently failing:
https://github.com/ionic-team/ionic-framework/actions/runs/7090913880/job/19298918578?pr=28622.
This is happening due to a breaking change in v5 of the action.

We currently pull from `main` for this action so we are now receiving v5
of the action:
fe3c3d500a/.github/workflows/label.yml (L16)

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- This PR updates the action explicitly to v5 so we don't unexpectedly
take on breaking changes
- This PR also updates the labeler yaml file to account for the v5
breaking changes

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-12-04 21:31:12 +00:00
Liam DeBeasi
196a22eb74 chore: fallback to framework team with codeowners (#28588)
I noticed that Dependabot PRs never had anyone assigned:
https://github.com/ionic-team/ionic-framework/pull/28586

The reason was that we removed `* @ionic-team/framework` when we
adjusted the codeowners in
https://github.com/ionic-team/ionic-framework/pull/27573.

My original reasoning for why we should remove it was wrong. GitHub only
assigns reviewers within a team if the team itself is assigned. By
removing the team from being reviewed, only people listed in the
codeowners file would be assigned. As an added example, PRs that do not
match codeowners currently have no one assigned:
https://github.com/ionic-team/ionic-framework/pull/28430
2023-11-28 16:44:51 +00:00
Shawn Taylor
04d32b6d68 chore: adds angular test app for v17 (#28513)
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. -->
There is no Angular v17 test app.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
There is an Angular v17 test app.

New overrides:
- angular.json: `browserTarget` was changed to `buildTarget` and to
replace `@nguniversal` with `@angular/ssr` and
`@angular-devkit/build-angular`
- server.ts: Replace uses of `@nguniversal` with `@angular/ssr`

New change to base:
- polyfills.ts: Import
[changed](https://github.com/angular/angular/blob/main/CHANGELOG.md#zonejs)
from `import 'zone.js/dist/zone';` (this change is supported for all
versions of Angular that we support, so should be changed in the base
file)

All other files were duplicated from their v16 counterparts.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-11-13 19:30:36 +00:00
Liam DeBeasi
1a4baba30d skip git checks 2023-11-03 13:15:58 -04:00
Liam DeBeasi
eb5a489ee4 git diff test 2023-11-03 13:11:45 -04:00
Liam DeBeasi
4129444b2f chore: install pnpm 2023-11-03 13:07:04 -04:00
Liam DeBeasi
c07b1cf924 update public script 2023-11-03 13:04:48 -04:00
Liam DeBeasi
fcd633f7a3 chore: update release process to use pnpm 2023-11-03 13:02:10 -04:00
Liam DeBeasi
91000ddcec chore: remove — — 2023-11-03 12:26:38 -04:00
Liam DeBeasi
cc3dd4984f chore(angular-server): restore core build on CI 2023-11-03 12:09:03 -04:00
Liam DeBeasi
ea3c544bcb chore(ci): core prerelease builds with pnpm 2023-11-03 10:48:51 -04:00
Liam DeBeasi
83c2ea2616 chore(ci): build angular and angular-server with pnpm 2023-11-03 10:46:07 -04:00
Liam DeBeasi
e53be3946a chore(ci): build react and react router with pnpm 2023-11-03 10:43:34 -04:00
Liam DeBeasi
be1c9421dd chore(ci): build vue and vue router 2023-11-03 10:41:18 -04:00
Liam DeBeasi
0fa25899f0 chore(ci): build core with pnpm 2023-11-02 17:52:46 -04:00
Ryan Waskiewicz
a5c68aa529 chore(repo): update angular path (#28426)
Issue number: #

---------

<!-- 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. -->
i found a small typo in the contributing guide

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

update the relative path for updating ionic angular, now that it's code
lives under the `packages/` directory

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-10-27 13:13:05 +00:00
Liam DeBeasi
3a3ebcf659 chore(ci): add workflow for testing ionicons dev build (#28345)
Issue number: N/A

---------

<!-- 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. -->

Testing Ionicons in Ionic is currently difficult. Developers need to a)
create a dev build of Ionicons, b) create a branch in Ionic, c) install
the dev build in Ionic core, d) push the branch, and e) create a draft
PR to watch the CI process run.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Introduces a workflow dispatch option for our CI process. This allows
developers to run the CI process for any branch without creating PR.
- I also added an optional input so devs can specify the ionicons
version if they want to pass a special version.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-10-17 18:06:25 +00:00
Shawn Taylor
dcbf45101f chore: update codeowners (#28332)
Issue number: N/A

"Owning" a test didn't really work out like I expected/hoped. A lot of
changes to the test files were minor, so I ended up just getting
assigned to more-or-less random PRs. It wasn't really hurting anything,
but I might as well just let the bot assign me.

---------

## Does this introduce a breaking change?

- [ ] Yes
- [x] No
2023-10-11 17:33:47 +00:00
Ryan Waskiewicz
00767a02e4 chore(repo): parameterize stencil nightly (#28308)
Issue number: N/A

---------

<!-- 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. -->

when the stencil team wants to test a dev build of stencil against the
framework team's ci, they push a branch to this repo that overrides the
stencil nightly job's npm tag (replacing 'nightly' with the dev build
version) and manually kick off the nightly workflow. this commit would
eliminate the need for that first step there

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

update the stencil nightly job to accept any npm release tag, rather
than always default to 'nightly'. doing so allows the stencil team to
reuse this workflow for cases where we'd like to test a _dev_ build of
stencil by running it through the framework's ci process, without
landing the feature in stencil first.

I was able to test that `nightly` gets set by default (and the field is
required) by running the workflow from this branch.

I then also tested this against a dev build of Stencil:
![Screenshot 2023-10-09 at 9 45
41 AM](https://github.com/ionic-team/ionic-framework/assets/1930213/65613327-e5b6-475d-9bcd-b3c0d27019d9)

Interestingly enough, it helped me catch something to consider if we
were to accept the PR this dev build is accepted!


## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

I considered making a separate workflow for this (rather than
override/use nightly) - it didn't quite seem worth the maintenance
effort 🤷
<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-10-09 14:21:33 +00:00
Liam DeBeasi
fd5a1ac708 chore(ci): account for new screenshots in error logging (#28166)
Issue number: N/A

---------

<!-- 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. -->

We checked `git diff` to see if new screenshots were generated. If no
new screenshots were generated then we print a user-friendly message
informing the dev what happened. However, `git diff` does not account
for untracked changes (i.e. new screenshots).

As a result, this prevented new screenshots from being committed.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- To fix this we use the `-N` flag which is short for `--intent-to-add`.
This adds an entry with no content which causes the new screenshots to
show up when running `git diff`. We later add the contents of the image.

Example test run of this working:
https://github.com/ionic-team/ionic-framework/actions/runs/6174263712/job/16759260534

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-09-13 15:57:17 +00:00
Liam DeBeasi
4b4ad75bf0 chore: add error when no new diffs generated (#28132)
Issue number: N/A

---------

<!-- 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. -->

When the "Update Reference Screenshot" job is run but no new screenshots
are generated, the following error is logged:

```
nothing added to commit but untracked files present (use "git add" to track)
Error: Process completed with exit code 1.
```

This is happening because there are no files to commit when running `git
commit`. Brandy noted that this was confusing since it doesn't actually
tell you why there are no files to commit.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- If there are no diffs to commit then the update screenshot script will
log a message saying that no screenshot diffs were generated.

Example:

```
⚠️ Error: No new screenshots generated ⚠️
This means that there were zero visual diffs when running screenshot tests.
Make sure you have pushed any code changes that would result in visual diffs.
```


https://github.com/ionic-team/ionic-framework/actions/runs/6099399582/job/16552017414

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-09-06 16:38:39 +00:00
Sean Perkins
38c4da3353 chore(ci): use node v18 for github actions (#28103)
Issue number: N/A

---------

<!-- 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. -->

`action/setup-node@v3` shipped a "breaking" change that requires node
v18. This breaks our dev build release process.


https://github.com/ionic-team/ionic-framework/actions/runs/6044495970/job/16403194005

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Updates the publish action to use node v18

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Here is a successful run with these changes:
https://github.com/ionic-team/ionic-framework/actions/runs/6044521110
2023-09-01 17:57:10 +00:00
Shawn Taylor
9eef62e4f2 chore(CODEOWNERS): add shawn to CODEOWNERS (#28064) 2023-08-25 17:19:12 +00:00
Brandy Carney
04b9b31622 chore(CODEOWNERS): add brandy to CODEOWNERS (#28063) 2023-08-25 16:17:31 +00:00
Maria Hutt
a7ed0a347a chore(CODEOWNERS): add Maria to Angular and Vue (#28061)
Issue number: N/A

---------

<!-- 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. -->

Maria isn't part of the codeowners.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Maria has been added to the Angular and Vue folders.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

N/A
2023-08-25 16:14:06 +00:00
Amanda Johnston
d1ce8e2f8d chore(codeowners): add Amanda to checkbox and radio (#28062)
Issue number: #

---------

<!-- 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. -->

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

-
-
-

## Does this introduce a breaking change?

- [ ] Yes
- [ ] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-08-25 16:00:40 +00:00