CI: fix [bin_packages] job by adding protobuf package dependencies, add to schedule

What

This:

  • removes a superfluous rustup-init.sh download
  • aligns the set of packages installed by the bin_packages job across the manual/non-manual jobs. in particular, this adds a perl dependency 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_packages jobs.
  • 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.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by Arvid Jakobsson

Merge request reports

Loading