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:
|
nightly:
|
||||||
extends: '.publish_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:
|
dist:
|
||||||
variables:
|
variables:
|
||||||
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
||||||
@ -282,13 +299,16 @@ dist:
|
|||||||
- "**/meson.build"
|
- "**/meson.build"
|
||||||
- meson/*
|
- meson/*
|
||||||
|
|
||||||
|
|
||||||
dist-tarball:
|
dist-tarball:
|
||||||
extends: dist
|
extends: dist
|
||||||
|
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
|
||||||
|
reports:
|
||||||
|
dotenv: dist.env
|
||||||
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…
x
Reference in New Issue
Block a user