spectrum-web-components icon indicating copy to clipboard operation
spectrum-web-components copied to clipboard

chore: migrate workflows from circleci to github actions [SWC-767]

Open castastrophe opened this issue 9 months ago • 6 comments

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.yml that 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.css with :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"
  • [ ] Validate eslint plugin

    • Update packages/accordion/src/Accordion.ts with import { 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"

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.

castastrophe avatar Mar 19 '25 21:03 castastrophe

⚠️ 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

changeset-bot[bot] avatar Mar 19 '25 21:03 changeset-bot[bot]

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:

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.

github-actions[bot] avatar Mar 19 '25 21:03 github-actions[bot]

Tachometer results

Currently, no packages are changed by this PR...

github-actions[bot] avatar Mar 19 '25 21:03 github-actions[bot]

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 Coverage Status
Change from base Build 14133083721: 0.0%
Covered Lines: 33711
Relevant Lines: 34211

💛 - Coveralls

coveralls avatar Mar 19 '25 21:03 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

caseyisonit avatar Mar 27 '25 17:03 caseyisonit

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.

castastrophe avatar Mar 28 '25 16:03 castastrophe