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/gnome-shell/-/merge_requests/3340>
This commit is contained in:
parent
e6618d093d
commit
27445a1c98
@ -264,6 +264,23 @@ flatpak:
|
||||
nightly:
|
||||
extends: '.publish_nightly'
|
||||
|
||||
distinfo:
|
||||
stage: deploy
|
||||
needs:
|
||||
- build
|
||||
script:
|
||||
- .gitlab-ci/export-artifact-path build > dist.env
|
||||
artifacts:
|
||||
reports:
|
||||
dotenv: dist.env
|
||||
paths:
|
||||
- build
|
||||
- mutter
|
||||
- subprojects/jasmine-gjs
|
||||
- dist.env
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
dist:
|
||||
variables:
|
||||
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
||||
@ -282,13 +299,16 @@ dist:
|
||||
- "**/meson.build"
|
||||
- meson/*
|
||||
|
||||
|
||||
dist-tarball:
|
||||
extends: dist
|
||||
needs:
|
||||
- distinfo
|
||||
artifacts:
|
||||
expose_as: 'Get tarball here'
|
||||
paths:
|
||||
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
||||
- $TARBALL_ARTIFACT_PATH
|
||||
reports:
|
||||
dotenv: dist.env
|
||||
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…
x
Reference in New Issue
Block a user