From 01b49bffe51e8cbf50262be44927bfbc0dc1ade8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Commaille?= Date: Fri, 5 Apr 2024 17:16:23 +0200 Subject: [PATCH] ci: Do not create tarball for releases Instead we will use the flatpak-cargo-generator script from flatpak-builder-tools for Flathub builds. This is not a problem for reproducible builds since everything has a hash (commit or Cargo.lock). --- .gitlab-ci.yml | 11 +--- .gitlab-ci/create_release.yml | 72 --------------------- .gitlab-ci/org.gnome.Fractal.CiTest.json | 82 ------------------------ build-aux/dist-vendor.sh | 9 --- meson.build | 6 -- 5 files changed, 1 insertion(+), 179 deletions(-) delete mode 100644 .gitlab-ci/create_release.yml delete mode 100644 .gitlab-ci/org.gnome.Fractal.CiTest.json delete mode 100644 build-aux/dist-vendor.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a7cc2df6..4f2ffae3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,24 +11,15 @@ variables: workflow: rules: - - if: $CI_COMMIT_BRANCH || $CI_COMMIT_TAG + - if: $CI_COMMIT_BRANCH include: - local: .gitlab-ci/run_checks.yml - rules: - - if: $CI_COMMIT_TAG == null - local: .gitlab-ci/build.yml - rules: - - if: $CI_COMMIT_TAG == null - local: .gitlab-ci/test.yml - rules: - - if: $CI_COMMIT_TAG == null - local: .gitlab-ci/publish_docs.yml rules: - if: $CI_COMMIT_BRANCH == "main" - local: .gitlab-ci/publish_nightly.yml rules: - if: $CI_COMMIT_BRANCH == "main" - - local: .gitlab-ci/create_release.yml - rules: - - if: $CI_COMMIT_TAG diff --git a/.gitlab-ci/create_release.yml b/.gitlab-ci/create_release.yml deleted file mode 100644 index 0c7103e1..00000000 --- a/.gitlab-ci/create_release.yml +++ /dev/null @@ -1,72 +0,0 @@ -# Generate a tarball, test it, then publish it to the package registry and create a release - -variables: - PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/release-tarballs/${CI_COMMIT_TAG}" - RELEASE_TARBALL: "fractal-${CI_COMMIT_TAG}.tar.xz" - RELEASE_TARBALL_SHA: "fractal-${CI_COMMIT_TAG}.tar.xz.sha256sum" - METAINFO_PATH: "data/org.gnome.Fractal.metainfo.xml.in.in" - TARBALL_TEST_MANIFEST_PATH: ".gitlab-ci/org.gnome.Fractal.CiTest.json" - -release-tarball: - stage: build - image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master' - variables: - LANG: "C.UTF-8" - tags: - - flatpak - script: - # Create tarball with vendored rust dependencies - - flatpak-builder --keep-build-dirs --user --disable-rofiles-fuse --stop-at=${FLATPAK_MODULE} flatpak_app --repo=repo ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH} - - echo "meson dist --no-test --allow-dirty" | flatpak-builder --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} - - mv .flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-dist tarball - - # Extract release notes of latest version from appstream - - appstreamcli metainfo-to-news --format markdown ${METAINFO_PATH} - | - awk '{ x[NR] = $0 } END { for ( i=5 ; i<=NR ; i++ ) { if (x[i] ~ /^$/ && x[i+1] ~ /^Version/ && x[i+2] ~ /^-/ && x[i+3] ~ /^Released:/) exit; else print x[i]; }}' > - release_notes.md - artifacts: - paths: - - tarball - - release_notes.md - -test-tarball: - stage: test - image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-46' - tags: - - flatpak - script: - - TARBALL_SHA=$(cut -f 1 -d " " tarball/${RELEASE_TARBALL_SHA}) - - sed -i "s|%%TARBALL_PATH%%|${PWD}/tarball/${RELEASE_TARBALL}|g" ${TARBALL_TEST_MANIFEST_PATH} - - sed -i "s|%%TARBALL_SHA%%|${TARBALL_SHA}|g" ${TARBALL_TEST_MANIFEST_PATH} - - flatpak-builder --user --disable-rofiles-fuse --sandbox flatpak_app --repo=repo ${BRANCH:+--default-branch=$BRANCH} ${TARBALL_TEST_MANIFEST_PATH} - -# https://gitlab.com/gitlab-org/gitlab/-/issues/271534 The default URL needs authentication right now, which is less than optimal... -# Get the package_files ID instead and use that as download URL in the "release" step. -create-release: - stage: deploy - image: registry.gitlab.com/gitlab-org/release-cli:latest - script: - - apk add curl jq - - # Upload tarball to package registry - - | - curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file tarball/${RELEASE_TARBALL} "${PACKAGE_REGISTRY_URL}/${RELEASE_TARBALL}" - - | - curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file tarball/${RELEASE_TARBALL_SHA} "${PACKAGE_REGISTRY_URL}/${RELEASE_TARBALL_SHA}" - - # Get package IDs and build URLs - - | - export PACKAGE_ID=$(curl "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages?sort=desc" | jq -c .[0].id) - - | - export RELEASE_TARBALL_DOWNLOAD_ID=$(curl "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${PACKAGE_ID}/package_files" | jq -c .[0].id) - export RELEASE_TARBALL_SHA_DOWNLOAD_ID=$(curl "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${PACKAGE_ID}/package_files" | jq -c .[1].id) - - export RELEASE_TARBALL_URL="${CI_PROJECT_URL}/-/package_files/$RELEASE_TARBALL_DOWNLOAD_ID/download" - - export RELEASE_TARBALL_SHA_URL="${CI_PROJECT_URL}/-/package_files/$RELEASE_TARBALL_SHA_DOWNLOAD_ID/download" - - cat release_notes.md - - # Create release - - | - release-cli create --name "$CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \ - --assets-link "{\"name\":\"Tarball for ${CI_COMMIT_TAG}\",\"url\":\"${RELEASE_TARBALL_URL}\", \"filepath\": \"/tarball/${RELEASE_TARBALL}\"}" \ - --assets-link "{\"name\":\"Checksum for ${CI_COMMIT_TAG}\",\"url\":\"${RELEASE_TARBALL_SHA_URL}\", \"filepath\": \"/tarball/${RELEASE_TARBALL_SHA}\"}" \ - --description release_notes.md diff --git a/.gitlab-ci/org.gnome.Fractal.CiTest.json b/.gitlab-ci/org.gnome.Fractal.CiTest.json deleted file mode 100644 index 38e9db55..00000000 --- a/.gitlab-ci/org.gnome.Fractal.CiTest.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "app-id": "org.gnome.Fractal", - "runtime": "org.gnome.Platform", - "runtime-version": "46", - "sdk": "org.gnome.Sdk", - "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.rust-stable", - "org.freedesktop.Sdk.Extension.llvm16" - ], - "command": "fractal", - "finish-args": [ - "--share=network", - "--share=ipc", - "--socket=fallback-x11", - "--socket=wayland", - "--socket=pulseaudio", - "--device=dri", - "--env=RUST_LOG=fractal=info,warn" - ], - "build-options": { - "append-ld-library-path": "/usr/lib/sdk/llvm16/lib", - "append-path": "/usr/lib/sdk/llvm16/bin:/usr/lib/sdk/rust-stable/bin" - }, - "modules": [ - { - "name" : "protobuf", - "buildsystem" : "autotools", - "config-opts": [ "DIST_LANG=cpp" ], - "cleanup" : [ - "/bin/protoc*", - "/lib/libprotoc*", - "/lib/libprotobuf-lite*" - ], - "sources" : [ - { - "type" : "archive", - "url" : "https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-all-3.17.3.tar.gz", - "sha256" : "77ad26d3f65222fd96ccc18b055632b0bfedf295cb748b712a98ba1ac0b704b2" - } - ] - }, - { - "name" : "protobuf-c", - "buildsystem" : "autotools", - "sources" : [ - { - "type" : "archive", - "url" : "https://github.com/protobuf-c/protobuf-c/releases/download/v1.4.0/protobuf-c-1.4.0.tar.gz", - "sha256" : "26d98ee9bf18a6eba0d3f855ddec31dbe857667d269bc0b6017335572f85bbcb" - } - ] - }, - { - "name": "libshumate", - "buildsystem": "meson", - "config-opts": [ - "-Dgir=false", - "-Dvapi=false", - "-Dgtk_doc=false", - "-Dvector_renderer=true" - ], - "sources": [ - { - "type": "archive", - "url": "https://download.gnome.org/sources/libshumate/1.2/libshumate-1.2.0.tar.xz", - "sha256": "4f8413a707cd00f84cee39ca49f58c48fc436f008ea80d6532ac37dafd0ba96b" - } - ] - }, - { - "name": "fractal", - "buildsystem": "meson", - "sources": [ - { - "type": "archive", - "path": "%%TARBALL_PATH%%", - "sha256": "%%TARBALL_SHA%%" - } - ] - } - ] -} diff --git a/build-aux/dist-vendor.sh b/build-aux/dist-vendor.sh deleted file mode 100644 index 636c8039..00000000 --- a/build-aux/dist-vendor.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -export DIST="$1" -export SOURCE_ROOT="$2" - -cd "$SOURCE_ROOT" -mkdir "$DIST"/.cargo -cargo vendor | sed 's/^directory = ".*"/directory = "vendor"/g' >> $DIST/.cargo/config.toml -# Move vendor into dist tarball directory -mv vendor "$DIST" diff --git a/meson.build b/meson.build index 20346206..f4c2d7aa 100644 --- a/meson.build +++ b/meson.build @@ -97,12 +97,6 @@ if profile == 'Devel' run_command('cp', '-f', 'hooks/pre-commit.hook', '.git/hooks/pre-commit') endif -meson.add_dist_script( - 'build-aux/dist-vendor.sh', - meson.project_build_root() / 'meson-dist' / meson.project_name() + '-' + version, - meson.project_source_root() -) - subdir('data') subdir('po') subdir('src')