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

FI-2727 Inferno CI #167

Closed
wants to merge 40 commits into from
Closed

FI-2727 Inferno CI #167

wants to merge 40 commits into from

Conversation

Shaumik-Ashraf
Copy link
Contributor

@Shaumik-Ashraf Shaumik-Ashraf commented Aug 12, 2024

Summary

This PR is a draft for testing GitHub Actions... will update this when its ready for review.

A full inferno execute example in GitHub Actions CI. Ready for early feedback.

This action fails correctly because of the TLS test. See results here

@Shaumik-Ashraf Shaumik-Ashraf marked this pull request as ready for review August 26, 2024 15:47
@Shaumik-Ashraf Shaumik-Ashraf self-assigned this Aug 28, 2024
@Shaumik-Ashraf
Copy link
Contributor Author

@dehall I'm actually going to move enabling the Docker CI into another PR

@Shaumik-Ashraf Shaumik-Ashraf marked this pull request as draft September 18, 2024 13:13
@Shaumik-Ashraf Shaumik-Ashraf marked this pull request as ready for review October 11, 2024 16:00
Copy link
Contributor

@dehall dehall left a comment

Choose a reason for hiding this comment

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

I have a couple minor notes but the big one is the action is still failing. Is there no way to get it to ignore that specific failing test? I really don't want to merge a CI action that we know will error every time - it means we have to go inspect the logs on every pr

- name: Point test kit to experimental branch
working-directory: ${{ github.workspace }}/onc-certification-g10-test-kit
run: |
echo "gem 'inferno_core', git: 'https://github.com/inferno-framework/inferno-core.git', branch: 'fi-3182-clean-diff'" >> Gemfile
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it necessary to use this branch instead of main? Looks like the inferno execute feature has been merged, and I don't see any short IDs referenced below

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes for now because that branch also includes a bug fix. Ideally this should point to the latest RubyGem release of inferno_core by the time it merges.

workflow_dispatch:

env:
INFERNO_G10_RELEASE: v6.0.3
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not a huge fan of manually specifying a tag here, it means every g10 release we'll have to remember to update this then make a PR, etc. If there's a way to get the latest tag that's probably better

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 generally people would want their CI tied to a specific release instead of latest, but I'll investigate running against latest as well as fixed releases.

run: |
docker compose build
docker compose up -d
wget -qO- https://raw.githubusercontent.com/eficode/wait-for/v2.2.3/wait-for | sh -s -- localhost:8080 -- echo "Server ready"
Copy link
Contributor

Choose a reason for hiding this comment

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

Piping a raw wget into a shell is a little scary but ok. Is the "wait-for-it" stuff in the repo not used anymore? Or could the script you're wgetting here be copied into the repo?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, wait-for-it doesn't work for our use case so I had to use wait-for. I'm thinking we'll either fork the wait-for repo, or copy in the script, or port the functionality into Ruby... still TBD.

smart_app_launch_version:smart_app_launch_1 \
multi_patient_version:multi_patient_api_stu1 \
--groups 4 \
--inputs "url:localhost:8080/reference-server/r4" \
Copy link
Contributor

Choose a reason for hiding this comment

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

These inputs are a little hard to follow. Is it possible to save these off to a separate file and read them in here? (The web UI allows you to download a json or yml of test run inputs, can those be loaded 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.

Yeah input preset file support is coming soon.

@Shaumik-Ashraf
Copy link
Contributor Author

I have a couple minor notes but the big one is the action is still failing. Is there no way to get it to ignore that specific failing test? I really don't want to merge a CI action that we know will error every time - it means we have to go inspect the logs on every pr

Agreed; I marked this as "ready" because the action is working as intended, but I wouldn't merge this into main. Unfortunately the way g10 is currently designed I'm unable to exclude just the TLS test that's causing this to fail. Currently I'm thinking this PR will get replaced by a GitHub Actions testing US Core instead of g10.

I appreciate the feedback though! It helps me make a proper Github Action for this.

@arscan
Copy link
Contributor

arscan commented Oct 16, 2024

W, [2024-10-11T15:31:17.251822 #3319] WARN -- : Unknown input token_revocation_attestation for g10_certification-g10_single_patient_api: Single Patient API (US Core 3.1.1)

I assume this is becuase you are passing an input to a test that doesn't exist? Should this just filter inputs passed to a test based on what the test inputs are? Inferno core should expose that pretty handily I'd hope?

@Shaumik-Ashraf
Copy link
Contributor Author

Shaumik-Ashraf commented Oct 17, 2024

Yeah there was a bug that required me to do that originally, but it got patched in: inferno-framework/inferno-core#542

I'm going to soft expect users to not put extraneous inputs when they select specific groups/tests to run.

@Shaumik-Ashraf
Copy link
Contributor Author

Closing because PR #182 fulfills this task

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