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>
This commit is contained in:
parent
42c534a02f
commit
bcfbc7fa17
2 changed files with 45 additions and 1 deletions
|
@ -634,6 +634,27 @@ test-mutter-coverity:
|
|||
paths:
|
||||
- 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:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
|
@ -673,10 +694,12 @@ dist-mutter:
|
|||
|
||||
dist-mutter-tarball:
|
||||
extends: dist-mutter
|
||||
needs:
|
||||
- distinfo
|
||||
artifacts:
|
||||
expose_as: 'Get tarball here'
|
||||
paths:
|
||||
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
||||
- $TARBALL_ARTIFACT_PATH
|
||||
rules:
|
||||
- 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