Relocate installation tests for current packages in child pipelines
What
At the moment all installation tests point to a repository that contains packages generated by hand in a test release.
This is actually not very useful. This MR remove these tests and move all installation tests in a child pipeline.
This is part of a series of MR to build, test and release the current and next packages.
Follow-up MRs will provide :
- installation tests for NEXT packages
- A refactoring of the tests to reduce the amount of time spent for normal merge pipelines ( so testing only one combination, and not the entire matrix ) !13669 (merged)
- Adding the whole tests matrix in schedules and release pipelines
- remove the compilation tests and assimilate them in the child pipeline as they fit. !13668 (merged)
- more... !13674 (merged)
Fix #7252 (closed)
Why
Testing over and over again packages generated for a fake release does not help us very much to catch problem related to the current branch.
How
I moved the build and tests in a child pipeline that is already used to build the NEXT packages.
To harmonize the build, I re-used the build dependency images to build
the CURRENT packages modifying the installation script and removing
that make build-deps part.
This allow us to save time and reduce a bit the craft in the build script for the CURRENT packages.
Also, as a side effect of this modification, now the current packages are built in a matrix and multiple architectures, making it easier to add more in the future if needed.
The create repository script was also adapted to create an apt repository for each branch. This is done in a test bucket. I added the private key for this test repository directly in the code. This should be not a security issue as these repositories are only used internally for testing.
More work is needed to secure the key for the protected bucket that will be published in a future release.
I've added a few comments in the scripts regarding the logic and all use cases I considered.
Manually testing the MR
Run the child pipeline and test that all packages are built and tested.
This is a test release pipeline to check I didn't break anything : https://gitlab.com/nomadic-labs/tezos/-/pipelines/1321414468
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR