We have a kubernetes cluster for x86_64 now to accept jobs. The default
limits are high to facilitate building packages.
For the smaller CI jobs like linting, these limits are too high and may
hinder other jobs from being accepted.
Set variables that set lower requests for these jobs.
This gives us more flexibiity with regards to the job configuration. One
job generates the job configuration which then triggers a downstream
pipeline.
While loongarch64 was being bootstrapped, we allowed it to fail to not
hard-block any MRs where it failed. Now that loongarch64 will be part of
the 3.21 release, CI failures for loongarch64 should be hard failures.
This is a feature supported since gitlab 16.7.
Since 36f0600b15 (ci: remove custom mirror for loongarch64,
2024-09-27), we use the same image for all arches, but because the
runner hosts are all 64-bits, we need to specify the platform
explicitly.
Fixes alpine/infra/infra#10830
Otherwise all pipelines where the job is not run will show as 'waiting
for manual action'. This behavior is different when just using `when:
manual` outside of rules, where `allow_failure` was implicitly true.
`only` has been deprecated and gitlab recommends to use rules instead,
which are more flexible.
Add a global workflow and change the `only` specifications to `rules`.
Due to recent changes in git, the owner of the repository files matter.
In CI, the repository is cloned by root, while the CI jobs run as a
non-root user. This causes git to fail with an error message.
This was already fixed in the ci build script, but the `before_script`
is run before that, and now starts to fail because the updated git
version is part of the image itself.
Because we fetch the commits in the build script anyway, lets just
remove the before_script.
To know what aports are changed in a merge request, we need to know
where the target branch is, so that we can use git diff against that
branch.
To test this, this was added in the CI jobs description in a global
`before_script`, but this is now being handled by respective scripts
themselves, so the before_script is now redundant.
In order to properly calculate what aports have been changed, we need
proper history being present. A shallow clone interferese with that.
Instead of having to override these settings on each project (forks of
aports), we can override these settings in the CI jobs description
instead.
gitlab allows us to define artifacts that will be uploaded to gitlab and
available to download for some time.
Specify that the built packages should be uploaded to gitlab, along with
the public key.
This will enable the CI linting job for merge requests done on gitlab.
The linting job will allow for failures, so linting failures will show
up as worning, but won't prevent the rest of the CI pipeline to
continue.