-
Notifications
You must be signed in to change notification settings - Fork 73
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
[PH] Create workflow to test backward compatibility of performance harness #1356
Conversation
… with prior leap releases.
This reverts commit d42f0e7.
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.
I know this is still in draft but I have some maintenance concerns with where it's going.
uses: AntelopeIO/upload-artifact-large-chunks-action@v1 | ||
with: | ||
name: ${{matrix.platform}}-build | ||
path: build.tar.zst |
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.
We shouldn't be copy pasting the 3 jobs above. If we need a leap build to be performed as part of this workflow we should refactor the existing workflows so that building leap is a reusable workflow, that way it can be used from the per-PR workflow and from here.
Performing a build here may not strictly be required since you can download artifacts from other workflow runs, but that requires the user to manually perform a build with the other workflow (and waiting for it to complete) before calling this workflow.
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.
@spoonincode - Starting to address this initially with a reusable workflow build-base
. Would like to further refine to allow it to either do the build from scratch or, if the build exists, reuse the artifacts. Still strategizing how to make this work.
with: | ||
owner: AntelopeIO | ||
repo: leap | ||
file: 'leap-.*-${{matrix.platform}}.04-x86_64.deb' # Ex. leap-3.1.4-ubuntu20.04-x86_64.deb |
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.
You might be able to combine these two if
blocks via something like file: '(leap).*${{matrix.platform}}.04.*(x86_64|amd64).deb'
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.
Thanks, good call. Addressed: c63042b
- name: Extract and Place Rev Leap Version artifacts | ||
run: | | ||
mkdir tmp | ||
dpkg -x leap*.deb tmp |
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.
Why extract it instead of installing it? This won't be reliable across versions due to dependency changes. For example, let's say in 5.0 we no longer require gmp: it won't be in the base builder image any longer yet leap 4.0 requires that to be installed to run. Using the leap-4.0.deb resolves these for us.
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.
Good call. Addressed: b7dea9b
run: | | ||
echo "Workflow Stub" | ||
cd build | ||
ctest --output-on-failure -R performance_test_basic_read_only_trxs --timeout 480 |
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.
Having all of these manually defined like this is at risk to forgetting to add one later. Maybe we should have a new label for performance tests, or maybe just -R performance_test
is enough.
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.
Collapsing these back down into a regular expression is the plan. Was splitting them out to get clearer information when a test failed during initial debugging. Although it is going to make skipping tests of newer features more difficult, where older versions of nodeos aren't expected to succeed.
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.
I believe I can do this with a mix of -R
and -E
depending on nodeos
version.
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.
Addressed: 800a37e
cleos time-limit option was added in 3.2 but is not in 3.1 so need to be able to differentiate on minor version number.
…orted command line options in earlier versions.
…duce future maintenance
… those nodeos and cleos versions.
Make use of reusable workflow in ph_backward_compatibility workflow.
.github/workflows/build.yaml
Outdated
password: ${{secrets.GITHUB_TOKEN}} | ||
package-name: builders | ||
build-base: | ||
uses: AntelopeIO/leap/.github/workflows/build_base.yaml@GH-1156-ph-cicd-nodeos-versions |
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.
I think this should just be
uses: .github/workflows/build_base.yaml
Hardcoding AntelopeIO
and/or leap
breaks forks/mirrors, and we shouldn't be hardcoding the branch -- it should just use the same ref as the caller
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.
.github/workflows/build.yaml
Outdated
@@ -23,28 +23,17 @@ on: | |||
type: string | |||
|
|||
permissions: | |||
packages: read | |||
packages: write |
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.
I would need to refresh my memory on how permissions & reusable workflows work to know for sure.. but can we leave this to read
and only plumb through the write permission on the resusable workflow call? That is, can we do something like
build-base:
uses: .github/workflows/build_base.yaml
permissions:
packages: write
contents: read
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.
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.
just one permission nit, otherwise it seems good best I can tell
.github/workflows/build_base.yaml
Outdated
value: ${{ jobs.d.outputs.p }} | ||
|
||
permissions: | ||
packages: write |
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.
I think this should just be read
, since below the build-platforms
job has
permissions:
packages: write
contents: read
So I think as long as build_base.yaml
is called with packages: write
, which it seems to be:
leap/.github/workflows/build.yaml
Lines 34 to 38 in 4e19e36
build-base: | |
uses: ./.github/workflows/build_base.yaml | |
permissions: | |
packages: write | |
contents: read |
Having
packages: read
in this location should cause all jobs in this workflow other then build-platform
be read, where build-platform
is write.
(btw your ph_backward_compatibility.yaml already does this)
leap/.github/workflows/ph_backward_compatibility.yaml
Lines 6 to 8 in 4e19e36
permissions: | |
packages: read | |
contents: read |
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.
Good catch. Slipped past when I was changing the others. I've corrected that now.
platform-file: .cicd/platforms.json | ||
password: ${{secrets.GITHUB_TOKEN}} | ||
package-name: builders | ||
build-base: |
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.
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.
Create workflow to test backward compatibility of performance harness with prior leap releases.
Introduces a reusable workflow
build-base
for the steps common to these workflows.Resolves: #1156