Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1064d9f
deb workflow added
mich-pest Apr 2, 2026
585b9a4
testing commit only
mich-pest Apr 3, 2026
6be99cb
dummy commit
mich-pest Apr 3, 2026
3f090d9
create-deb-deploy: install prefix fix
mich-pest Apr 3, 2026
ac894e6
barebone-specific deb creation fix
mich-pest Apr 3, 2026
9292433
fixup! barebone-specific deb creation fix
mich-pest Apr 3, 2026
3d0d23c
fixup! fixup! barebone-specific deb creation fix
mich-pest Apr 3, 2026
0da1e63
create-release-deb: docker image provided
mich-pest Apr 3, 2026
e1379d9
create-deb-deploy: cleanup stage rm
mich-pest Apr 3, 2026
550cccb
create-deb-deploy: include headers flag added
mich-pest Apr 20, 2026
c349baf
create-release-deb: updated top-level workflow file
mich-pest Apr 20, 2026
0a619ab
create-deb-deploy: cleanup due to base image switch
mich-pest Apr 21, 2026
bb297f1
gluecode: submodule update
mich-pest Apr 21, 2026
4b26c47
create-deb-deploy: skipping build if compiled code is available
mich-pest Apr 21, 2026
e2dc657
create-release-deb: build artifact usage added
mich-pest Apr 21, 2026
4e77778
create-release-deb: dockerfile update in docker-publish args
mich-pest Apr 21, 2026
6e37b6f
create-deb-deploy: always-double deb creation added
mich-pest Apr 21, 2026
c021998
create-release-deb: framework/runtime image created from debs
mich-pest Apr 21, 2026
9281f96
create-release-deb: tmp branch name change
mich-pest Apr 21, 2026
4007321
create-release-deb: explicit dockerfile path
mich-pest Apr 21, 2026
42ab889
create-release-deb: artifact_download_path update
mich-pest Apr 21, 2026
65109b1
create-deb-deploy: general script
mich-pest Apr 21, 2026
f44118a
create-release-deb: using builtin deb creation script
mich-pest Apr 22, 2026
1cf8857
create-release-deb: trying caller general deb creation script, deb va…
mich-pest Apr 22, 2026
5245219
create-release-deb: forcing fresh rebuild in deb creation
mich-pest Apr 22, 2026
073ecc9
create-release-deb: additional debug prints added
mich-pest Apr 22, 2026
c76b7c8
fixup! create-release-deb: additional debug prints added
mich-pest Apr 22, 2026
e5386ad
create-release-deb: reverting fresh build test
mich-pest Apr 23, 2026
26697c6
create-deb-deploy: refreshing step added when build is provided
mich-pest Apr 23, 2026
0aeb6f3
create-release-deb: reverting to builtin deb creation script
mich-pest Apr 23, 2026
162abcd
create-deb-deploy: project-specific script removed
mich-pest Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 135 additions & 0 deletions .github/workflows/create-release-deb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: Create Release and .deb Files Project

on:
push:
tags:
- 'v*.*.*'
- 'v*.*.*-rc*'

env:
GNUTLS_CPUID_OVERRIDE: 0x1

permissions:
contents: write
packages: write
id-token: write

jobs:
build_test:
uses: iit-DLSLab/cicd_tools/.github/workflows/dls2_build_test.yml@main
with:
test-command: "ls"
output_workflow_artifact_name: build
secrets:
GHCR_USERNAME: ${{ secrets.GHCR_USERNAME }}
CICD_PAT: ${{ secrets.CICD_PAT }}

release_deb:
needs: build_test
uses: iit-DLSLab/cicd_tools/.github/workflows/create-release-deb.yml@main
with:
package-name: "dls2"
# deb-script-source: caller
deb-script-source: builtin
builtin-deb-script-path: scripts/create-deb-deploy.sh
container: "ghcr.io/iit-dlslab/dls2-dev:latest"
workflow_artifact_name: ${{ needs.build_test.outputs.build_workflow_artifact_name }}
artifact_download_path: "."
secrets:
GHCR_USERNAME: ${{ secrets.GHCR_USERNAME }}
CICD_PAT: ${{ secrets.CICD_PAT }}

validate_deb:
needs: release_deb
runs-on: ubuntu-24.04
steps:
- name: Download runtime .deb artifact
uses: actions/download-artifact@v4
with:
name: ${{ needs.release_deb.outputs.runtime_deb_workflow_artifact_name }}
path: runtime-deb

- name: Download framework .deb artifact
uses: actions/download-artifact@v4
with:
name: ${{ needs.release_deb.outputs.framework_deb_workflow_artifact_name }}
path: framework-deb

- name: Validate packaged binaries
shell: bash
run: |
set -euo pipefail

runtime_deb="runtime-deb/${{ needs.release_deb.outputs.runtime_deb_artifact_name }}"
framework_deb="framework-deb/${{ needs.release_deb.outputs.framework_deb_artifact_name }}"

echo "Downloaded artifact contents:"
find runtime-deb framework-deb -maxdepth 2 -type f -print | sort

for deb in "$runtime_deb" "$framework_deb"; do
echo "Validating $deb"
if [[ ! -f "$deb" ]]; then
echo "ERROR: expected package file not found: $deb"
exit 1
fi

echo "--- dpkg-deb --info $deb"
dpkg-deb --info "$deb"

echo "--- matching entries in $deb"
dpkg-deb -c "$deb" | awk '
/\.\/*usr\/bin\/dls($|\/)/ || /\.\/*usr\/local/ || /^drwx.*\.\/usr\/bin\/?$/ { print }
'

if ! dpkg-deb -c "$deb" | awk '
index($0, "./usr/bin/dls") { found=1 }
END { exit(found ? 0 : 1) }
'; then
echo "ERROR: $deb does not contain /usr/bin/dls"
exit 1
fi
done

publish_runtime_image:
needs:
- release_deb
- validate_deb
uses: iit-DLSLab/cicd_tools/.github/workflows/docker-publish.yml@main
with:
image_name: dls2-runtime
registry: ghcr.io
context: external-docker/dockerfiles/dls2-dev-deb
dockerfile: external-docker/dockerfiles/dls2-dev-deb/Dockerfile
tag_override: ${{ needs.release_deb.outputs.version_tag }}
workflow_artifact_name: ${{ needs.release_deb.outputs.runtime_deb_workflow_artifact_name }}
artifact_download_path: external-docker/dockerfiles/dls2-dev-deb/artifacts
extra_checkout_repository: iit-DLSLab/dls_docker
extra_checkout_ref: deb
extra_checkout_path: external-docker
extra_build_args: |
DLS2_DEB_FILE=${{ needs.release_deb.outputs.runtime_deb_artifact_name }}
force_latest_tag: true
secrets:
CICD_PAT: ${{ secrets.CICD_PAT }}

publish_framework_image:
needs:
- release_deb
- validate_deb
uses: iit-DLSLab/cicd_tools/.github/workflows/docker-publish.yml@main
with:
image_name: dls2-framework
registry: ghcr.io
context: external-docker/dockerfiles/dls2-dev-deb
dockerfile: external-docker/dockerfiles/dls2-dev-deb/Dockerfile
tag_override: ${{ needs.release_deb.outputs.version_tag }}
workflow_artifact_name: ${{ needs.release_deb.outputs.framework_deb_workflow_artifact_name }}
artifact_download_path: external-docker/dockerfiles/dls2-dev-deb/artifacts
extra_checkout_repository: iit-DLSLab/dls_docker
extra_checkout_ref: deb
extra_checkout_path: external-docker
extra_build_args: |
DLS2_DEB_FILE=${{ needs.release_deb.outputs.framework_deb_artifact_name }}
force_latest_tag: true
secrets:
CICD_PAT: ${{ secrets.CICD_PAT }}
2 changes: 1 addition & 1 deletion gluecode
Loading