diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ab8bebc5b..59a4f78d9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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' diff --git a/.gitlab-ci/export-artifact-path b/.gitlab-ci/export-artifact-path new file mode 100755 index 000000000..f9a7534fd --- /dev/null +++ b/.gitlab-ci/export-artifact-path @@ -0,0 +1,21 @@ +#!/usr/bin/gjs -m +// SPDX-FileCopyrightText: 2024 Florian Müllner +// +// 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} `); + 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`);