[neon/snap-packaging/kde-qt6-core-sdk/work.core24-arm64-build-test] debian: test dual arch build

Carlos De Maine null at kde.org
Mon Jul 21 03:02:27 BST 2025


Git commit 57e2df38a6872422aadf2cee47a6da3098b420b8 by Carlos De Maine.
Committed on 21/07/2025 at 02:02.
Pushed by carlosdem into branch 'work.core24-arm64-build-test'.

test dual arch build

M  +3    -0    debian/.gitlab-ci-neon.yml
A  +79   -0    debian/snap-base-proto.yml
A  +62   -0    debian/snap-snapcraft-core-lxd-proto.yml

https://invent.kde.org/neon/snap-packaging/kde-qt6-core-sdk/-/commit/57e2df38a6872422aadf2cee47a6da3098b420b8

diff --git a/debian/.gitlab-ci-neon.yml b/debian/.gitlab-ci-neon.yml
index bc678c6..6d10efc 100644
--- a/debian/.gitlab-ci-neon.yml
+++ b/debian/.gitlab-ci-neon.yml
@@ -5,3 +5,6 @@ include:
   - project: sysadmin/ci-utilities
     file:
       - /gitlab-templates/snap-snapcraft-core-lxd.yml
+  - local: debian/snap-snapcraft-core-lxd-proto.yml
+  - local: debian/snap-base-proto.yml
+
diff --git a/debian/snap-base-proto.yml b/debian/snap-base-proto.yml
new file mode 100644
index 0000000..9cd85b3
--- /dev/null
+++ b/debian/snap-base-proto.yml
@@ -0,0 +1,79 @@
+.snap_base:
+  stage: deploy
+  image: storage.kde.org/vm-images/snap-builder
+  tags:
+    - VM
+    - amd64
+  variables:
+    KDE_SNAP_MODULE_NAME: ${CI_PROJECT_NAME}
+    KDE_SNAP_BRANCH: ${CI_COMMIT_REF_NAME}
+    SNAPCRAFT_BUILD_ENVIRONMENT: "lxd"
+    SNAPCRAFT_MANAGED_MODE: "y"
+  interruptible: true
+  before_script:
+    - git clone https://invent.kde.org/sysadmin/ci-utilities.git --depth=1
+    - git clone https://invent.kde.org/sysadmin/repo-metadata.git ci-utilities/repo-metadata/ --depth=1
+  script:
+    - git config --global --add safe.directory $CI_PROJECT_DIR
+  artifacts:
+    name: Snap deploy artifacts
+    expose_as: 'KDE neon snaps deploying artifacts'
+    when: always
+    paths:
+      - "kde-ci-packages/"
+      - "task.log"
+      - "task-debug.log"
+      - "deploy.env"
+    expire_in: 7 days
+
+.snap_base-arm64:
+  stage: deploy
+  image: storage.kde.org/vm-images/snap-builder-arm64
+  tags:
+    - VM
+    - arm64
+  variables:
+    KDE_SNAP_MODULE_NAME: ${CI_PROJECT_NAME}
+    KDE_SNAP_BRANCH: ${CI_COMMIT_REF_NAME}
+    SNAPCRAFT_BUILD_ENVIRONMENT: "lxd"
+    SNAPCRAFT_MANAGED_MODE: "y"
+  interruptible: true
+  before_script:
+    - git clone https://invent.kde.org/sysadmin/ci-utilities.git --depth=1
+    - git clone https://invent.kde.org/sysadmin/repo-metadata.git ci-utilities/repo-metadata/ --depth=1
+  script:
+    - git config --global --add safe.directory $CI_PROJECT_DIR
+  artifacts:
+    name: Snap deploy artifacts
+    expose_as: 'KDE neon snaps deploying artifacts'
+    when: always
+    paths:
+      - "kde-ci-packages/"
+      - "task.log"
+      - "task-debug.log"
+      - "deploy.env"
+    expire_in: 7 days
+
+.snap_publish:
+  stage: publish
+  image: storage.kde.org/vm-images/snap-builder-arm64
+  tags:
+    - VM
+    - arm64
+  rules:
+    # run the job on mainline branches of mainline repositories
+    - if: $KDECI_SECURE_SERVICES_KEY
+      when: on_success
+    # or when triggered manually we don't want the manual job to block the pipeline
+    - when: manual
+      allow_failure: true
+  variables:
+    GIT_STRATEGY: none
+  interruptible: true
+  artifacts:
+    name: Snap publish artifacts
+    expose_as: 'KDE neon snaps publishing artifacts'
+    when: always
+    paths:
+      - "publish.log"
+    expire_in: 7 days
diff --git a/debian/snap-snapcraft-core-lxd-proto.yml b/debian/snap-snapcraft-core-lxd-proto.yml
new file mode 100644
index 0000000..db5ac07
--- /dev/null
+++ b/debian/snap-snapcraft-core-lxd-proto.yml
@@ -0,0 +1,62 @@
+include:
+  - project: sysadmin/ci-utilities
+    file:
+      #- /gitlab-templates/blocks/snap-base.yml
+      - /gitlab-templates/blocks/workflow.yml
+
+
+snap_snapcraft_core_lxd:
+  extends: .snap_base
+  stage: deploy
+  inherit:
+    default: true
+  script:
+    # clean
+    - snapcraft clean
+    # Force usage of LXD for building Snaps
+    - echo building $KDE_SNAP_MODULE_NAME with LXD...
+    - snapcraft --use-lxd --verbose 2>&1 | tee task.log
+    # Make the artifacts dir
+    - mkdir -p $CI_PROJECT_DIR/kde-ci-packages/
+    # copy the snap to the artifacts dir
+    - cp -vf ./*.snap  $CI_PROJECT_DIR/kde-ci-packages/
+    - echo $KDE_SNAP_BRANCH >> deploy.env
+  allow_failure: true
+  interruptible: true
+
+snap_snapcraft_core_publish:
+  extends: .snap_publish
+  stage: publish
+  needs: [snap_snapcraft_core_lxd]
+  script:
+    - export KDE_SNAP_BRANCH=$(cat deploy.env)
+    - |
+      # set the channel for the snap dependent on which branch we are building
+      # master = edge
+      if [ "$KDE_SNAP_BRANCH" == "master" ]; then
+        export KDE_SNAP_CHANNEL="edge"
+      # release.beta = beta
+      elif [ "$KDE_SNAP_BRANCH" == "release.beta" ]; then
+        export KDE_SNAP_CHANNEL="beta"
+      # release.candidate = candidate
+      elif [ "$KDE_SNAP_BRANCH" == "release.candidate" ]; then
+        export KDE_SNAP_CHANNEL="candidate"
+      # release.stable = stable
+      elif [ "$KDE_SNAP_BRANCH" == "release.stable" ]; then
+        export KDE_SNAP_CHANNEL="stable"
+      # don't publish work branches
+      elif [ "$KDE_SNAP_BRANCH" == "work.*" ]; then
+        export KDE_SNAP_CHANNEL="no_publish"
+        echo "we don't publish work branches to the snap store, you can download your snap from this jobs artifacts"
+      else
+      # don't publish anything else either
+        export KDE_SNAP_CHANNEL="no_publish"
+        echo "we only publish recognised branches to the snap store"
+      fi
+      # publish if we are on a recognised branch
+      if [ "$KDE_SNAP_CHANNEL" != "no_publish" ]; then
+        echo "KDE_SNAP_BRANCH is $KDE_SNAP_BRANCH thus KDE_SNAP_CHANNEL is publishing to $KDE_SNAP_CHANNEL"
+        snapcraft push --release=$KDE_SNAP_CHANNEL *.snap --verbose 2>&1 | tee publish.log
+      fi
+  allow_failure: true
+  interruptible: true


More information about the Neon-commits mailing list