diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b5076386..8aca09f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -147,6 +147,21 @@ fedora-build: paths: - build +fedora-distinfo: + stage: deploy + needs: + - fedora-build + script: + - .gitlab-ci/export-artifact-path build > dist.env + artifacts: + reports: + dotenv: dist.env + paths: + - build + - dist.env + rules: + - if: '$CI_COMMIT_TAG' + fedora-dist: stage: deploy needs: @@ -163,9 +178,13 @@ fedora-dist: fedora-dist-tarball: extends: fedora-dist + needs: + - fedora-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 00000000..f9a7534f --- /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`);