ci: Use meson introspect
to generate artifact path
We currently assume that the `CI_COMMIT_TAG` variable matches the
version component of the generated dist tarball.
That is usually correct, but sometimes errors happen and a wrong
tag is pushed, and the real release uses something like "46.0-real".
Account for that by building the artifact path from `meson introspect`
and exporting it as environment variable.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3775>
(cherry picked from commit bcfbc7fa17
)
This commit is contained in:
parent
5a5a506f57
commit
bfa4522a90
2 changed files with 45 additions and 1 deletions
|
@ -624,6 +624,27 @@ test-mutter-coverity:
|
||||||
paths:
|
paths:
|
||||||
- coverity
|
- coverity
|
||||||
|
|
||||||
|
distinfo:
|
||||||
|
extends:
|
||||||
|
- .fdo.distribution-image@fedora
|
||||||
|
- .mutter.fedora@x86_64
|
||||||
|
- .build-mutter-base
|
||||||
|
- .test-setup
|
||||||
|
stage: deploy
|
||||||
|
needs:
|
||||||
|
- job: build-fedora-container@x86_64
|
||||||
|
artifacts: false
|
||||||
|
script:
|
||||||
|
- meson setup . build
|
||||||
|
- .gitlab-ci/export-artifact-path build > dist.env
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
dotenv: dist.env
|
||||||
|
paths:
|
||||||
|
- dist.env
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_TAG'
|
||||||
|
|
||||||
dist-mutter:
|
dist-mutter:
|
||||||
extends:
|
extends:
|
||||||
- .fdo.distribution-image@fedora
|
- .fdo.distribution-image@fedora
|
||||||
|
@ -663,10 +684,12 @@ dist-mutter:
|
||||||
|
|
||||||
dist-mutter-tarball:
|
dist-mutter-tarball:
|
||||||
extends: dist-mutter
|
extends: dist-mutter
|
||||||
|
needs:
|
||||||
|
- distinfo
|
||||||
artifacts:
|
artifacts:
|
||||||
expose_as: 'Get tarball here'
|
expose_as: 'Get tarball here'
|
||||||
paths:
|
paths:
|
||||||
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
- $TARBALL_ARTIFACT_PATH
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_COMMIT_TAG'
|
- if: '$CI_COMMIT_TAG'
|
||||||
|
|
||||||
|
|
21
.gitlab-ci/export-artifact-path
Executable file
21
.gitlab-ci/export-artifact-path
Executable file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/gjs -m
|
||||||
|
// SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
import Gio from 'gi://Gio';
|
||||||
|
import {programArgs, programInvocationName, exit} from 'system';
|
||||||
|
|
||||||
|
const [buildDir] = programArgs;
|
||||||
|
if (!buildDir) {
|
||||||
|
printerr(`usage: ${programInvocationName} <build-dir>`);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
const subprocess = Gio.Subprocess.new(
|
||||||
|
['meson', 'introspect', '--projectinfo', buildDir],
|
||||||
|
Gio.SubprocessFlags.STDOUT_PIPE);
|
||||||
|
const [, out] = subprocess.communicate_utf8(null, null);
|
||||||
|
|
||||||
|
const {descriptive_name, version} = JSON.parse(out);
|
||||||
|
print(`TARBALL_ARTIFACT_PATH=${buildDir}/meson-dist/${descriptive_name}-${version}.tar.xz`);
|
Loading…
Reference in a new issue