Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 17 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@ on:

permissions:
contents: read
actions: read

jobs:
quality-coverage-quick-build:
name: Quality + Coverage + Quick Build
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@v5
Expand Down Expand Up @@ -312,4 +315,17 @@ jobs:
path: |
changelog.md
release-notes.md
sbom-artifacts/
sbom-artifacts/

create-release:
name: Create GitHub Release
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
needs: [quality-coverage-quick-build, full-multiarch-build-test]
permissions:
contents: write
actions: read
uses: ./.github/workflows/release.yml
with:
build_run_id: ${{ github.run_id }}
version: ${{ needs.quality-coverage-quick-build.outputs.version }}
create_draft: false
48 changes: 24 additions & 24 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ on:
required: true
type: string
version:
description: 'Release version (leave empty for auto-generated)'
required: false
default: ''
description: 'Release version'
required: true
type: string
create_draft:
description: 'Create as draft release'
Expand All @@ -25,9 +24,8 @@ on:
required: true
type: string
version:
description: 'Release version (leave empty for auto-generated)'
required: false
default: ''
description: 'Release version'
required: true
type: string
create_draft:
description: 'Create as draft release'
Expand All @@ -48,22 +46,7 @@ jobs:
- name: Generate release info
id: release_info
run: |
# Use manual version if provided, otherwise generate using same scheme as CMake
if [ -n "${{ inputs.version }}" ]; then
VERSION="${{ inputs.version }}"
else
# Match CMakeLists.txt date-based versioning: YYYY.MM.DD
BUILD_YEAR=$(date -u +"%Y")
BUILD_MONTH=$(date -u +"%m")
BUILD_DAY=$(date -u +"%d")
VERSION="${BUILD_YEAR}.${BUILD_MONTH}.${BUILD_DAY}"

# Add git commit info if available (match CMake logic)
COMMIT_SHA=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
if [ "$COMMIT_SHA" != "unknown" ]; then
VERSION="${VERSION}+git.${COMMIT_SHA}"
fi
fi
VERSION="${{ inputs.version }}"

COMMIT_SHA=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
BUILD_DATE=$(date -u +"%Y%m%d_%H%M%S")
Expand Down Expand Up @@ -153,8 +136,14 @@ jobs:
# Move build artifacts to release packages directory
if [ -d "./downloaded-artifacts" ]; then
find ./downloaded-artifacts -name "*.deb" -exec cp {} ./release-packages/ \;
find ./downloaded-artifacts -name "*.tgz" -exec cp {} ./release-packages/ \;
find ./downloaded-artifacts -name "*.tar.*" -exec cp {} ./release-packages/ \;
find ./downloaded-artifacts -name "test-report.md" -exec cp {} ./release-packages/ \;
fi

PACKAGE_COUNT=$(find ./release-packages -maxdepth 1 -type f \( -name "*.deb" -o -name "*.tgz" -o -name "*.tar.*" \) | wc -l)
if [ "${PACKAGE_COUNT}" -eq 0 ]; then
echo "❌ No package artifacts found (.deb/.tgz/.tar.*)"
exit 1
fi

echo "Downloaded artifacts:"
Expand All @@ -168,7 +157,7 @@ jobs:
cd ./release-packages

# Generate individual hash files for each package
for pattern in "*.deb" "*.tar.*"; do
for pattern in "*.deb" "*.tgz" "*.tar.*"; do
for file in $pattern; do
if [ -f "$file" ]; then
echo "Generating hash for $file"
Expand All @@ -188,6 +177,11 @@ jobs:
sha256sum *.deb >> SHA256SUMS
fi

# Add checksums for .tar.* files
if ls *.tgz >/dev/null 2>&1; then
sha256sum *.tgz >> SHA256SUMS
fi

# Add checksums for .tar.* files
if ls *.tar.* >/dev/null 2>&1; then
sha256sum *.tar.* >> SHA256SUMS
Expand Down Expand Up @@ -240,6 +234,12 @@ jobs:
tag_name: ${{ steps.release_info.outputs.version || github.run_number }}
name: "AASDK Release ${{ steps.release_info.outputs.version || github.run_number }}"
body_path: RELEASE_NOTES.md
files: |
release-packages/*.deb
release-packages/*.tgz
release-packages/*.tar.*
release-packages/*.sha256
release-packages/SHA256SUMS
draft: ${{ inputs.create_draft || false }}
prerelease: ${{ contains(steps.release_info.outputs.version, 'git') }}
env:
Expand Down
Loading