CI: fix [bin_packages] job by adding protobuf package dependencies, add to schedule
What
This:
- removes a superfluous
rustup-init.shdownload - aligns the set of packages installed by the bin_packages job across the manual/non-manual jobs. in particular, this adds a
perldependency that was missing. - refactors the bin_package job definitions so that package lists are no longer duplicated twice per package target type.
- adds protobuf-related system dependencies to the
bin_packagesjobs. - adds the bin_package jobs to the scheduled pipeline.
Why
Fixes bug found by chance here, as demonstrated in these pipelines:
Basically, the addition of the ocaml-protoc-plugin opam dependency in opam-repository!478 (merged) means that some additional system dependencies are required.
To ensure such problems are found in the future, I add the jobs to the scheduled pipeline.
How
Not much to discuss here IMO. It might be possible to use opam depext install to install the system dependencies.
Manually testing the MR
Checkout the pipelines in this MR along with the artificial scheduled pipeline.
To create an artificial scheduled pipeline, pipeline profiler was used:
PRIVATE_TOKEN=(it's secret!) ~/dev/nomadic-labs/pipeline-profiler/run_pipeline_type.sh schedule_extended_test
Reviewing With GitLab CI Inspector
You can review the changes in this MR using GitLab CI Inspector. It is particularly useful to ensure that no unintended changes snuck in.
First, set up an alias to the tezos-flavour of GitLab CI Inspector:
$ alias gci-tezos='docker run -v$(pwd):$(pwd) -w $(pwd) registry.gitlab.com/nomadic-labs/gitlab-ci-inspector/tezos:arvid_docker_tezos '
Now we can see the diff between the merged configuration of all
environments (corresponding to pipeline types, like before_merging) commit per commit:
$ gci-tezos diff-full-config HEAD~5 HEAD~4 all-envs
$ gci-tezos diff-full-config HEAD~4 HEAD~3 all-envs
...
For instance, you'll notice that the third commit is a pure refactoring inducing no changes in the merged configuration:
$ gci-tezos diff-full-config HEAD~3 HEAD~2 all-envs
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