Skip to content

Conversation

@stalgiag
Copy link
Contributor

@stalgiag stalgiag commented Sep 4, 2025

Overview

This PR does the following

  1. Adds a pinned aria-at commit SHA to be used when no commit arg is provided to the import-tests script
  2. Adds a workflow scheduled to run daily that does the following
  3. Check to see if the pinned commit SHA is the latest, if so exit
  4. Grabs the latest commit SHA, runs import tests using it
  5. Runs all tests except the snapshot tests
  6. If above is successful, updates the snapshots
  7. Pushes a commit to development with the updated pinned SHA and snapshots

This would resolve many issues with snapshots and it would also catch upstream breaking changes.

Leaving in DRAFT until the overall approach is agreed upon. There is likely some additional consideration needed for how this is handled in deployed environments.

Example workflow runs

@stalgiag stalgiag requested a review from ChrisC September 8, 2025 20:51
@ChrisC
Copy link
Contributor

ChrisC commented Sep 9, 2025

@stalgiag This direction looks great and matches what I think we all agreed on at a previous architecture meeting! I think you can take out of draft and finalize when you're ready.


- The pinned SHA lives at `config/aria-at.version`.
- Local imports without `-c` will read this file (or `ARIA_AT_PINNED_SHA`).
- CI imports historical commits for coverage and then the pinned commit.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an aside, but it's still unclear to me why exactly we need those historical commits (and now in addition to the pinned commit)... Is this some tech debt that we could also clean up before next year? cc @howard-e

@stalgiag stalgiag marked this pull request as ready for review September 10, 2025 16:04
@howard-e howard-e self-requested a review September 10, 2025 16:17
Copy link
Contributor

@howard-e howard-e left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stalgia thanks for pushing the work forward on this! Left comments below concerning how this operates in the deployed environments

- It is recommended to install node with [`nvm`](https://github.com/nvm-sh/nvm)
2. Yarn
- Yarn is resposible for installing dependencies, similar to npm. This project is utilizing yarn workspaces to organize the code into a monorepo structure.
- Yarn is responsible for installing dependencies, similar to npm. This project is utilizing yarn workspaces to organize the code into a monorepo structure.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏽

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this change prevent the deployed environments from getting the latest version changes from aria-at? The aria-at.version is effectively static there.

Seems a cron in the deployed environment too or some exclusion of aria-at.version in those environments' deploys with the fail condition relaxed is needed here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. Maybe we use the aria-at.version from the github repo development as the canonical version and this is what is used during the deploy's "refresh" cron jobs?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds practical to me!

Copy link
Contributor Author

@stalgiag stalgiag Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious if this meets your concerns 5c44b6e? It is difficult to test this but I think this should work for the cron. Let me know if you have any ideas on how I could test this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that this default path should work for enforcing the pinned commit on initial deploy but admittedly Ansible is unfamiliar to me

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, these changes look good! After resolving the merge conflicts and reviewing my latest comment, we'd be good to move this forward


on:
schedule:
- cron: '0 6 * * *'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I worry that this daily interval is too big given how often the deployed environment actually checks (and may update). Right now that's every 15mins. Could we match that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants