Skip to content
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

GHA Workflow Refactoring #162

Merged
merged 7 commits into from
Nov 18, 2022
Merged

GHA Workflow Refactoring #162

merged 7 commits into from
Nov 18, 2022

Conversation

Sushisource
Copy link
Member

What was changed

  • Add java testing workflow
  • Don't target main/master of SDKs from PRs to this repo
  • Preparation necessary for triggering from server/sdk repos

Why?

Great testathon 2022

@Sushisource Sushisource force-pushed the gh-actions-refactoring branch 3 times, most recently from 923606c to f8b538a Compare November 17, 2022 23:00
@Sushisource Sushisource force-pushed the gh-actions-refactoring branch from f8b538a to 43d4fd0 Compare November 17, 2022 23:04
@Sushisource
Copy link
Member Author

All SDKs are able to successfully run these workflows now. temporalio/sdk-go#961 fails b/c there is a compat break, we still have to decide our exact strategy there.

@Sushisource Sushisource marked this pull request as ready for review November 18, 2022 00:39
@@ -81,31 +81,26 @@ jobs:
feature-tests-ts:
uses: ./.github/workflows/typescript.yaml
with:
typescript-repo-path: temporalio/sdk-typescript
typescript-repo-ref: main
version: 1.4.4
Copy link
Member

Choose a reason for hiding this comment

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

I have opened #166 for --version latest support. I may be able to get to it today.

I wonder, even if we add that, would it be ok to put in here? Or are there concerns of the mismatch in time between when an SDK is released and when SDK features is updated to support that release? If we're not gonna put it in here, I might not even work on the issue as it may not be worth it.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, that's a good question. I kinda like the explicitness of this.

We could maybe do something like check if the explicit version is not latest and let us know somehow? I'm just not sure what the delivery mechanism for that would be.

Copy link
Member

Choose a reason for hiding this comment

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

Pros of explicitness:

  • No downtime for SDK features because it has to be explicitly upgraded instead of being different

Cons of explicitness:

  • If a release doesn't break any SDK features, people will have no reason to update this and it may get stale

Yeah, there's no good notification mechanism that can't be ignored, heh.

Maybe at the least we should pull the version out of what is set in the SDK features repo root so we don't have to remember to update there and here? Something like --version current? Also then you could put dependabot on this repo to tell you when to upgrade (surely you can configure it to just be for our SDKs and not all of its other noise).

Would be curious @bergundy's opinion here.

Copy link
Member

Choose a reason for hiding this comment

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

+1 for #166, I'd just make sure that we get the concrete version when we build docker containers so we can properly tag the images.

Copy link
Member

Choose a reason for hiding this comment

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

I'd be fine with explicit version too as long as we add a release step in our guidelines to bump here or better yet if there was a good way to automate it (assuming we have time for it).

@@ -138,17 +124,6 @@ jobs:
semver-latest: major
run-tag: '1.4.4'

# TODO: Need PR to add some gradle stuff in sdk-java to simplify this, but also we're not going
Copy link
Member

Choose a reason for hiding this comment

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

While technically we could add this trigger from Java SDK to get master docker builds pushed to a repository I don't think master images are a part of our matrix.

I would want us to test against cloud on SDK main / master but that doesn't require building a docker image.

Copy link
Member

Choose a reason for hiding this comment

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

(and shouldn't be defined as a part of this matrix so we're good)

@@ -0,0 +1,64 @@
name: Java Features Testing
Copy link
Member

Choose a reason for hiding this comment

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

🙌

Comment on lines +80 to +82
const errstr = `Feature ${featureDir} failed with ${err}`;
failedFeaturesStr += errstr + '\n';
console.error(errstr, (err as any).stack);
Copy link
Member

Choose a reason for hiding this comment

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

This should do it.

Suggested change
const errstr = `Feature ${featureDir} failed with ${err}`;
failedFeaturesStr += errstr + '\n';
console.error(errstr, (err as any).stack);
console.error(`Feature ${featureDir} failed`, err);

Copy link
Member Author

Choose a reason for hiding this comment

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

The point here was to include each failure in the summary at the end of the CI log where people will see it

Copy link
Member

Choose a reason for hiding this comment

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

👍

Copy link
Member

@bergundy bergundy left a comment

Choose a reason for hiding this comment

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

Nice!
Now that we test all SDKs, do we still need to build them (e.g. build-java)?

@Sushisource
Copy link
Member Author

Nice! Now that we test all SDKs, do we still need to build them (e.g. build-java)?

Indeed I was considering blasting those, but they run linters which aren't necessary in the reusable workflow defs. I could write ifs to exclude them or just run them every time... but the isolation maybe makes things a touch more readable. 🤷‍♂️

We can always get rid of them later if it's a problem.

@Sushisource Sushisource merged commit 9bcc6b1 into main Nov 18, 2022
@Sushisource Sushisource deleted the gh-actions-refactoring branch November 18, 2022 18:45
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