-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include lint and test jobs for node-ci-push workflow (option 1) #2346
Conversation
…bled on feature branches (this is so feature branches can be updated with main)
|
Size Change: 0 B Total Size: 100 kB ℹ️ View Unchanged
|
A new build was pushed to Chromatic! 🚀https://5e1bf4b385e3fb0020b7073c-lzwkaoxtyl.chromatic.com/ Chromatic results:
|
.github/workflows/node-ci-push.yml
Outdated
@@ -68,3 +68,100 @@ jobs: | |||
with: | |||
token: ${{ secrets.CODECOV_TOKEN }} | |||
files: ./coverage/coverage-final.json | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes are based on chatting with Lilli on how to work with Intermediate Integration Branches (thanks for the help @lillialexis!). These changes will make it so main
will include these checks and we can include commits from main
into feature branches. Please let me know if there's another way to address this so that we're able to merge the latest changes from main into feature branches!
GeraldRequired Reviewers
Don't want to be involved in this pull request? Comment |
npm Snapshot: NOT Published🤕 Oh noes!! We couldn't find any changesets in this PR (3d0520d). As a result, we did not publish an npm snapshot for you. |
@beaesguerra as we discussed offline. It would be worth exploring using reusable workflows to avoid repeating the jobs in two separate workflows. |
d8f84a1
to
b956751
Compare
b956751
to
85e3439
Compare
08a819b
to
c0a0a52
Compare
- name: Typecheck | ||
if: always() # always run this check until we update the eslint config | ||
# if: steps.js-ts-files.outputs.filtered != '[]' || steps.typecheck-reset.outputs.filtered != '[]' | ||
shell: bash |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The action.yml
files contain the same steps as before with the addition of shell: bash
on the steps that had errors around requiring the shell
config
- uses: actions/checkout@v4 | ||
- uses: ./.github/actions/test | ||
env: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One other difference between composite actions and reusing workflows is that secrets can only be accessed by actions using an input or environment variable, while reusable workflows can define secrets
Here, we pass the codecov token using an env variable. Let me know if there are any concerns with this!
@@ -35,36 +36,29 @@ jobs: | |||
with: | |||
node-version: ${{ matrix.node-version }} | |||
|
|||
|
|||
coverage: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The coverage job can be removed since the test action covers test coverage too!
We will be moving forward with option 2 using reusable workflows. See #2348 for more details! |
…workflow) (#2348) ## Summary: - Lint and test jobs from [node-ci-pr.yml](https://github.com/Khan/wonder-blocks/blob/a32b0779acc9ed8dc742955160cc7748052296e8/.github/workflows/node-ci-pr.yml#L65-L160) are also run in the `node-ci-push.yml` workflow - this is done so that feature branches can be updated with the latest changes in main (there are currently branch protection rules on feature/* branches that require these status checks to pass) - Lint and test jobs are refactored into [reusable workflows](https://docs.github.com/en/actions/sharing-automations/reusing-workflows) so that both `node-ci-push` and `node-ci-pr` can use the same config See #2346 for an alternative where we use composite actions instead to share configuration Update: We decided to use reusable workflows so that the logs are easier to read for the steps and we can use the `secrets` config (which isn't supported by composite actions). The branch rules have been updated to look for `Lint / Lint` and `Test / Test` checks. Pros: - shared configuration for `node-ci-push` and `node-ci-pr` - easy to see the [logs](https://github.com/Khan/wonder-blocks/actions/runs/11393035774/job/31700470290?pr=2348) for the different steps: ![Screenshot 2024-10-17 at 3 21 04 PM](https://github.com/user-attachments/assets/effeca62-4326-4626-bee0-02f43c984d19) Cons: - since we are using another workflow, the names of the jobs are nested (ie. `Node CI (PR) / Lint / Lint` instead of just `Node CI (PR) / Lint` ) and the github checks will need to be updated (let me know though if there's a way around this!) ![Screenshot 2024-10-17 at 3 16 53 PM](https://github.com/user-attachments/assets/baee2f1b-78a8-479c-a416-d07cc76972c9) Issue: WB-1778 ## Test plan: - Confirm linting and tests run in CI - Confirm steps properly fail when there are linting errors, typescript errors, and failing tests ![image](https://github.com/user-attachments/assets/e6749cc3-5b85-4e6d-933b-8217e8acf7cf) Author: beaesguerra Reviewers: beaesguerra, jandrade Required Reviewers: Approved By: jandrade Checks: ✅ Chromatic - Get results on regular PRs (ubuntu-latest, 20.x), ✅ Test / Test (ubuntu-latest, 20.x, 2/2), ✅ Test / Test (ubuntu-latest, 20.x, 1/2), ✅ Lint / Lint (ubuntu-latest, 20.x), ✅ Check build sizes (ubuntu-latest, 20.x), ✅ Test / Test (ubuntu-latest, 20.x, 2/2), ✅ Test / Test (ubuntu-latest, 20.x, 1/2), ✅ Lint / Lint (ubuntu-latest, 20.x), ✅ Check build sizes (ubuntu-latest, 20.x), ✅ Chromatic - Build on regular PRs / chromatic (ubuntu-latest, 20.x), ⏭️ Chromatic - Skip on Release PR (changesets), 🚫 Chromatic - Get results on regular PRs, ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ Prime node_modules cache for primary configuration (ubuntu-latest, 20.x), ✅ gerald, ✅ Publish npm snapshot (ubuntu-latest, 20.x), 🚫 Chromatic - Build on regular PRs / chromatic (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ⏭️ Chromatic - Skip on Release PR (changesets), ✅ Prime node_modules cache for primary configuration (ubuntu-latest, 20.x), ✅ gerald, ✅ Chromatic - Get results on regular PRs (ubuntu-latest, 20.x), ✅ Test / Test (ubuntu-latest, 20.x, 2/2), ✅ Test / Test (ubuntu-latest, 20.x, 1/2), ✅ Lint / Lint (ubuntu-latest, 20.x), ✅ Check build sizes (ubuntu-latest, 20.x), ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Chromatic - Build on regular PRs / chromatic (ubuntu-latest, 20.x), ✅ Prime node_modules cache for primary configuration (ubuntu-latest, 20.x), ⌛ undefined, ⌛ undefined Pull Request URL: #2348
Summary
See #2348 for an alternative where we use reusable workflows instead to share configuration.
Pros:
Cons:
Test Plan