diff --git a/.github/workflows/build_debian_src.yml b/.github/workflows/build_debian_src.yml index dfd8b66fb..1424774b0 100644 --- a/.github/workflows/build_debian_src.yml +++ b/.github/workflows/build_debian_src.yml @@ -5,6 +5,11 @@ on: secrets: PPA_GPG_PRIVATE_KEY: required: true + inputs: + series: + description: 'Ubuntu series to target' + required: true + type: string permissions: contents: write @@ -42,7 +47,9 @@ jobs: working-directory: meshtasticd run: debian/ci_pack_sdeb.sh env: + SERIES: ${{ inputs.series }} GPG_KEY_ID: ${{ steps.gpg.outputs.keyid }} + REVISION: ${{ github.sha }} - name: Get release version string working-directory: meshtasticd @@ -54,7 +61,7 @@ jobs: - name: Store binaries as an artifact uses: actions/upload-artifact@v4 with: - name: firmware-debian-${{ steps.version.outputs.long }}-src + name: firmware-debian-${{ steps.version.outputs.long }}-${{ inputs.series }}-src overwrite: true path: | meshtasticd_${{ steps.version.outputs.short }}* diff --git a/.github/workflows/main_matrix.yml b/.github/workflows/main_matrix.yml index f4c5de228..be8cddaf3 100644 --- a/.github/workflows/main_matrix.yml +++ b/.github/workflows/main_matrix.yml @@ -129,7 +129,13 @@ jobs: board: ${{ matrix.board }} package-ppa: + strategy: + fail-fast: false + matrix: + series: [plucky, oracular, noble, jammy] uses: ./.github/workflows/package_ppa.yml + with: + series: ${{ matrix.series }} secrets: inherit package-raspbian: diff --git a/.github/workflows/package_ppa.yml b/.github/workflows/package_ppa.yml index 9d59df472..d630e8092 100644 --- a/.github/workflows/package_ppa.yml +++ b/.github/workflows/package_ppa.yml @@ -5,6 +5,11 @@ on: secrets: PPA_GPG_PRIVATE_KEY: required: true + inputs: + series: + description: 'Ubuntu series to target' + required: true + type: string workflow_dispatch: permissions: @@ -15,6 +20,8 @@ jobs: build-debian-src: uses: ./.github/workflows/build_debian_src.yml secrets: inherit + with: + series: ${{ inputs.series }} package-ppa: runs-on: ubuntu-24.04 @@ -50,11 +57,11 @@ jobs: - name: Download artifacts uses: actions/download-artifact@v4 with: - name: firmware-debian-${{ steps.version.outputs.long }}-src + name: firmware-debian-${{ steps.version.outputs.long }}-${{ inputs.series }}-src merge-multiple: true - name: Display structure of downloaded files - run: ls -R + run: ls -lah - name: Publish with dput if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} diff --git a/debian/ci_pack_sdeb.sh b/debian/ci_pack_sdeb.sh index 79b484a35..acab2683f 100755 --- a/debian/ci_pack_sdeb.sh +++ b/debian/ci_pack_sdeb.sh @@ -1,9 +1,16 @@ #!/usr/bin/bash +export DEBEMAIL="github-actions[bot]@users.noreply.github.com" export PLATFORMIO_LIBDEPS_DIR=pio/libdeps export PLATFORMIO_PACKAGES_DIR=pio/packages # Download libraries to `libdeps` platformio pkg install -e native +package=$(dpkg-parsechangelog --show-field Source) +pkg_version=$(dpkg-parsechangelog --show-field Version | cut -d- -f1) + +dch --create --distribution $SERIES --package $package --newversion $pkg_version-ppa${REVISION::7}~$SERIES \ + "GitHub Actions Automatic packaging for $SERIES" + # Build the source deb debuild -S -k$GPG_KEY_ID