chore: migrate workflows from circleci to github actions [SWC-767]
Description
Due to some spottiness and difficulty throughout the team debugging CircleCI, this pull request migrations a few low-impact tasks to GitHub Actions using a format that is already validated to be working in Spectrum CSS.
- Move linting from CircleCI to being run and tracked via GitHub Actions
- Add CI caching support via a key: OS + node version + yarn lockfile hash
- leveraging these local caches has been shown to speed up CI runs significantly
- New build workflow to validate the build steps continue to work in all supported development environments: MacOS, Linux, ~and Windows~. This also ensures no uncommitted changes arise from the build task.
- A single pull-request entry-point
development.ymlthat runs on pull requests and pushes. It validates the build in each supported env, checks test coverage, and runs linting. - A new lint workflow built off the linting previous done in CircleCI plus the tooling leveraged current in the Spectrum CSS project.
How has this been tested?
Setup:
-
Create a fork branch off this one:
git checkout -b test-circleci-migration -
[ ] Validate stylelint plugin
- Update
packages/accordion/src/accordion.csswith:host { --spectrum-logical-rotation: ; --spectrum-logical-rotation: ; }(duplicate variable intentional) - Commit this update without verifying (it will get blocked in precommit checks otherwise and we want to validate the reviewdog task):
git commit --no-verify -m "break styles"
- Update
-
[ ] Validate eslint plugin
- Update
packages/accordion/src/Accordion.tswithimport { css, CSSResultArray, html, PropertyValues, SizedMixin, SpectrumElement, TemplateResult, } from '@spectrum-web-components/base'; - Commit this update without verifying (it will get blocked in precommit checks otherwise and we want to validate the reviewdog task):
git commit --no-verify -m "break typescript"
- Update
To validate the above, open a pull request for the test branch update against main and let CI do its thing.
Expect a comment to be added to the pull request reporting the errors in this update
Types of changes
- [x] Chore (minor updates related to the tooling or maintenance of the repository, does not impact compiled assets)
Checklist
- [x] I have signed the Adobe Open Source CLA.
- [x] My code follows the code style of this project.
- [x] If my change required a change to the documentation, I have updated the documentation in this pull request.
- [x] I have read the CONTRIBUTING document.
- [x] I have added tests to cover my changes.
- [x] All new and existing tests passed.
- [x] I have reviewed at the Accessibility Practices for this feature, see: Aria Practices
Best practices
This repository uses conventional commit syntax for each commit message; note that the GitHub UI does not use this by default so be cautious when accepting suggested changes. Avoid the "Update branch" button on the pull request and opt instead for rebasing your branch against main.
⚠️ No Changeset found
Latest commit: 3363b2abafc4f1ca39655e66962cd595524c0db5
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
Branch preview
Review the following VRT differences
When a visual regression test fails (or has previously failed while working on this branch), its results can be found in the following URLs:
- Spectrum | Light | Medium | LTR
- Spectrum | Dark | Large | RTL
- Express | Light | Medium | LTR
- Express | Dark | Large | RTL
- Spectrum-two | Light | Medium | LTR
- Spectrum-two | Dark | Large | RTL
- High Contrast Mode | Medium | LTR
If the changes are expected, update the current_golden_images_cache hash in the circleci config to accept the new images. Instructions are included in that file.
If the changes are unexpected, you can investigate the cause of the differences and update the code accordingly.
Tachometer results
Currently, no packages are changed by this PR...
Pull Request Test Coverage Report for Build 14133318326
Details
- 0 of 0 changed or added relevant lines in 0 files are covered.
- No unchanged relevant lines lost coverage.
- Overall coverage remained the same at 97.999%
| Totals | |
|---|---|
| Change from base Build 14133083721: | 0.0% |
| Covered Lines: | 33711 |
| Relevant Lines: | 34211 |
💛 - Coveralls
To validate the above, open a pull request for the test branch update against main and let CI do its thing.
Expect a comment to be added to the pull request reporting the errors in this update
@castastrophe Should the test PR be pointed to this branch to see the suggested CI changes? My assumption is yes because we don't currently comment.
That being said based on my test PR I'm not seeing the comment on the PR but I do have MUCH better logging in CI. test PR: https://github.com/adobe/spectrum-web-components/pull/5280
That being said based on my test PR I'm not seeing the comment on the PR but I do have MUCH better logging in CI. test PR: https://github.com/adobe/spectrum-web-components/pull/5280
@caseyisonit Great question. I tried updating the branches and repointing it at main.