Merge branch 'master' into baud-fix

This commit is contained in:
SignalMedic 2025-01-09 21:35:37 -05:00 committed by GitHub
commit fd866dc677
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 239 additions and 120 deletions

View File

@ -83,13 +83,13 @@ runs:
- name: Get release version string - name: Get release version string
shell: bash shell: bash
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Store binaries as an artifact - name: Store binaries as an artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: firmware-${{ inputs.arch }}-${{ inputs.board }}-${{ steps.version.outputs.version }}.zip name: firmware-${{ inputs.arch }}-${{ inputs.board }}-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: | path: |
${{ inputs.artifact-paths }} ${{ inputs.artifact-paths }}

View File

@ -7,7 +7,11 @@ on:
required: true required: true
inputs: inputs:
series: series:
description: Ubuntu series to target description: Ubuntu/Debian series to target
required: true
type: string
build_location:
description: Location where build will execute
required: true required: true
type: string type: string
@ -47,6 +51,8 @@ jobs:
working-directory: meshtasticd working-directory: meshtasticd
run: | run: |
echo "deb=$(./bin/buildinfo.py deb)" >> $GITHUB_OUTPUT echo "deb=$(./bin/buildinfo.py deb)" >> $GITHUB_OUTPUT
env:
BUILD_LOCATION: ${{ inputs.build_location }}
id: version id: version
- name: Fetch libdeps, package debian source - name: Fetch libdeps, package debian source

View File

@ -18,7 +18,7 @@ jobs:
repository: ${{github.event.pull_request.head.repo.full_name}} repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Docker login - name: Docker login
@ -39,7 +39,7 @@ jobs:
context: . context: .
file: ./Dockerfile file: ./Dockerfile
push: true push: true
tags: meshtastic/meshtasticd:${{ steps.version.outputs.version }} tags: meshtastic/meshtasticd:${{ steps.version.outputs.long }}
- name: Docker build and push - name: Docker build and push
if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }} if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}

View File

@ -25,13 +25,13 @@ jobs:
run: bin/build-native.sh run: bin/build-native.sh
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Store binaries as an artifact - name: Store binaries as an artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: firmware-native-${{ steps.version.outputs.version }}.zip name: firmware-native-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: | path: |
release/meshtasticd_linux_x86_64 release/meshtasticd_linux_x86_64

View File

@ -39,13 +39,13 @@ jobs:
run: bin/build-native.sh run: bin/build-native.sh
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Store binaries as an artifact - name: Store binaries as an artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: firmware-raspbian-${{ steps.version.outputs.version }}.zip name: firmware-raspbian-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: | path: |
release/meshtasticd_linux_aarch64 release/meshtasticd_linux_aarch64

View File

@ -39,13 +39,13 @@ jobs:
run: bin/build-native.sh run: bin/build-native.sh
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Store binaries as an artifact - name: Store binaries as an artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: firmware-raspbian-armv7l-${{ steps.version.outputs.version }}.zip name: firmware-raspbian-armv7l-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: | path: |
release/meshtasticd_linux_armv7l release/meshtasticd_linux_armv7l

View File

@ -192,7 +192,7 @@ jobs:
run: ls -R run: ls -R
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Move files up - name: Move files up
@ -201,7 +201,7 @@ jobs:
- name: Repackage in single firmware zip - name: Repackage in single firmware zip
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: firmware-${{matrix.arch}}-${{ steps.version.outputs.version }} name: firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}
overwrite: true overwrite: true
path: | path: |
./firmware-*.bin ./firmware-*.bin
@ -218,7 +218,7 @@ jobs:
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v4
with: with:
name: firmware-${{matrix.arch}}-${{ steps.version.outputs.version }} name: firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}
merge-multiple: true merge-multiple: true
path: ./output path: ./output
@ -232,12 +232,12 @@ jobs:
chmod +x ./output/device-update.sh chmod +x ./output/device-update.sh
- name: Zip firmware - name: Zip firmware
run: zip -j -9 -r ./firmware-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip ./output run: zip -j -9 -r ./firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip ./output
- name: Repackage in single elfs zip - name: Repackage in single elfs zip
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip name: debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: ./*.elf path: ./*.elf
retention-days: 30 retention-days: 30
@ -245,8 +245,8 @@ jobs:
- uses: scruplelesswizard/comment-artifact@main - uses: scruplelesswizard/comment-artifact@main
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
with: with:
name: firmware-${{matrix.arch}}-${{ steps.version.outputs.version }} name: firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}
description: "Download firmware-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip. This artifact will be available for 90 days from creation" description: "Download firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip. This artifact will be available for 90 days from creation"
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
release-artifacts: release-artifacts:
@ -271,26 +271,24 @@ jobs:
python-version: 3.x python-version: 3.x
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Create release - name: Create release
uses: actions/create-release@v1 uses: softprops/action-gh-release@v2
id: create_release id: create_release
with: with:
draft: true draft: true
prerelease: true prerelease: true
release_name: Meshtastic Firmware ${{ steps.version.outputs.version }} Alpha name: Meshtastic Firmware ${{ steps.version.outputs.long }} Alpha
tag_name: v${{ steps.version.outputs.version }} tag_name: v${{ steps.version.outputs.long }}
body: | body: |
Autogenerated by github action, developer should edit as required before publishing... Autogenerated by github action, developer should edit as required before publishing...
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Download deb files - name: Download deb files
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
pattern: meshtasticd_${{ steps.version.outputs.version }}_*.deb pattern: meshtasticd_${{ steps.version.outputs.long }}_*.deb
merge-multiple: true merge-multiple: true
path: ./output path: ./output
@ -298,35 +296,14 @@ jobs:
- name: Display structure of downloaded files - name: Display structure of downloaded files
run: ls -lR run: ls -lR
- name: Add raspbian aarch64 .deb - name: Add deb files to release
uses: actions/upload-release-asset@v1 uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ github.token }}
with: with:
upload_url: ${{ steps.create_release.outputs.upload_url }} tag_name: v${{ steps.version.outputs.long }}
asset_path: ./output/meshtasticd_${{ steps.version.outputs.version }}_arm64.deb files: |
asset_name: meshtasticd_${{ steps.version.outputs.version }}_arm64.deb ./output/meshtasticd_${{ steps.version.outputs.long }}_arm64.deb
asset_content_type: application/vnd.debian.binary-package ./output/meshtasticd_${{ steps.version.outputs.long }}_armhf.deb
./output/meshtasticd_${{ steps.version.outputs.long }}_amd64.deb
- name: Add raspbian armv7l .deb
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./output/meshtasticd_${{ steps.version.outputs.version }}_armhf.deb
asset_name: meshtasticd_${{ steps.version.outputs.version }}_armhf.deb
asset_content_type: application/vnd.debian.binary-package
- name: Add raspbian amd64 .deb
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./output/meshtasticd_${{ steps.version.outputs.version }}_amd64.deb
asset_name: meshtasticd_${{ steps.version.outputs.version }}_amd64.deb
asset_content_type: application/vnd.debian.binary-package
- name: Bump version.properties - name: Bump version.properties
run: >- run: >-
@ -362,12 +339,12 @@ jobs:
python-version: 3.x python-version: 3.x
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v4
with: with:
pattern: firmware-${{matrix.arch}}-${{ steps.version.outputs.version }} pattern: firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}
merge-multiple: true merge-multiple: true
path: ./output path: ./output
@ -380,37 +357,25 @@ jobs:
chmod +x ./output/device-update.sh chmod +x ./output/device-update.sh
- name: Zip firmware - name: Zip firmware
run: zip -j -9 -r ./firmware-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip ./output run: zip -j -9 -r ./firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip ./output
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v4
with: with:
name: debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip name: debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip
merge-multiple: true merge-multiple: true
path: ./elfs path: ./elfs
- name: Zip firmware - name: Zip debug elfs
run: zip -j -9 -r ./debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip ./elfs run: zip -j -9 -r ./debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip ./elfs
# For diagnostics # For diagnostics
- name: Display structure of downloaded files - name: Display structure of downloaded files
run: ls -lR run: ls -lR
- name: Add bins to release - name: Add bins and debug elfs to release
uses: actions/upload-release-asset@v1 uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ github.token }}
with: with:
upload_url: ${{needs.release-artifacts.outputs.upload_url}} tag_name: v${{ steps.version.outputs.long }}
asset_path: ./firmware-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip files: |
asset_name: firmware-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip ./firmware-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip
asset_content_type: application/zip ./debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.long }}.zip
- name: Add debug elfs to release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{needs.release-artifacts.outputs.upload_url}}
asset_path: ./debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip
asset_name: debug-elfs-${{matrix.arch}}-${{ steps.version.outputs.version }}.zip
asset_content_type: application/zip

View File

@ -17,13 +17,3 @@ jobs:
uses: trunk-io/trunk-action@782e83f803ca6e369f035d64c6ba2768174ba61b uses: trunk-io/trunk-action@782e83f803ca6e369f035d64c6ba2768174ba61b
with: with:
trunk-token: ${{ secrets.TRUNK_TOKEN }} trunk-token: ${{ secrets.TRUNK_TOKEN }}
package-ppa:
strategy:
fail-fast: false
matrix:
series: [plucky, oracular, noble, jammy]
uses: ./.github/workflows/package_ppa.yml
with:
ppa_repo: daily
series: ${{ matrix.series }}
secrets: inherit

37
.github/workflows/nightly_debian.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Nightly Debian Packaging
on:
schedule:
- cron: 0 9 * * *
workflow_dispatch:
push:
branches:
- master
paths:
- debian/**
- .github/workflows/nightly_debian.yml
- .github/workflows/build_debian_src.yml
- .github/workflows/package_ppa.yml
- .github/workflows/package_obs.yml
permissions:
contents: write
packages: write
jobs:
package-ppa:
strategy:
fail-fast: false
matrix:
series: [plucky, oracular, noble, jammy]
uses: ./.github/workflows/package_ppa.yml
with:
ppa_repo: daily
series: ${{ matrix.series }}
secrets: inherit
package-obs:
uses: ./.github/workflows/package_obs.yml
with:
obs_repo: meshtasticd
series: unstable
secrets: inherit

View File

@ -32,13 +32,13 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Download artifacts - name: Download artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: firmware-native-${{ steps.version.outputs.version }}.zip name: firmware-native-${{ steps.version.outputs.long }}.zip
merge-multiple: true merge-multiple: true
- name: Display structure of downloaded files - name: Display structure of downloaded files
@ -77,14 +77,14 @@ jobs:
package: meshtasticd package: meshtasticd
package_root: .debpkg package_root: .debpkg
maintainer: Jonathan Bennett maintainer: Jonathan Bennett
version: ${{ steps.version.outputs.version }} # refs/tags/v*.*.* version: ${{ steps.version.outputs.long }} # refs/tags/v*.*.*
arch: amd64 arch: amd64
depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0 depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0
desc: Native Linux Meshtastic binary. desc: Native Linux Meshtastic binary.
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: meshtasticd_${{ steps.version.outputs.version }}_amd64.deb name: meshtasticd_${{ steps.version.outputs.long }}_amd64.deb
overwrite: true overwrite: true
path: | path: |
./*.deb ./*.deb

103
.github/workflows/package_obs.yml vendored Normal file
View File

@ -0,0 +1,103 @@
name: Package for OpenSUSE Build Service
on:
workflow_call:
secrets:
PPA_GPG_PRIVATE_KEY:
required: true
inputs:
obs_repo:
description: Meshtastic OBS repo to target
required: true
type: string
series:
description: Debian series to target
required: true
type: string
permissions:
contents: write
packages: write
jobs:
build-debian-src:
uses: ./.github/workflows/build_debian_src.yml
secrets: inherit
with:
series: ${{ inputs.series }}
build_location: obs
package-obs:
runs-on: ubuntu-24.04
needs: build-debian-src
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
path: meshtasticd
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Install OpenSUSE Build Service deps
shell: bash
run: |
echo 'deb http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/openSUSE:Tools.list
curl -fsSL https://download.opensuse.org/repositories/openSUSE:Tools/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/openSUSE_Tools.gpg > /dev/null
sudo apt-get update -y --fix-missing
sudo apt-get install -y osc
- name: Get release version string
working-directory: meshtasticd
run: |
echo "deb=$(./bin/buildinfo.py deb)" >> $GITHUB_OUTPUT
env:
BUILD_LOCATION: obs
id: version
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: firmware-debian-${{ steps.version.outputs.deb }}~${{ inputs.series }}-src
merge-multiple: true
- name: Display structure of downloaded files
run: ls -lah
# - name: Configure osc
# shell: bash
# env:
# OBS_USERNAME: ${{ secrets.OBS_USERNAME }}
# OBS_PASSWORD: ${{ secrets.OBS_PASSWORD }}
# run: |
# mkdir -p ~/.config/osc
# echo -e "[https://api.opensuse.org]\n" > ~/.config/osc/oscrc
# echo -e "user = $OBS_USERNAME" >> ~/.config/osc/oscrc
# echo -e "pass = $OBS_PASSWORD" >> ~/.config/osc/oscrc
# echo -e "aliases = obs" >> ~/.config/osc/oscrc
# # Authenticate to OBS
# osc meta prj -v
# - name: Upload Package to OBS
# shell: bash
# run: |
# # Define your OBS project and repository
# OBS_PROJECT="application:meshtastic"
# OBS_REPO="${{ inputs.obs_repo }}"
# # Create a temporary directory for osc
# mkdir -p /tmp/osc/$OBS_PROJECT/$OBS_REPO
# cd /tmp/osc/$OBS_PROJECT/$OBS_REPO
# # Initialize the package directory
# osc checkout $OBS_PROJECT $OBS_REPO
# # Copy package files to the osc directory
# cp $GITHUB_WORKSPACE/*.dsc .
# cp $GITHUB_WORKSPACE/*.tar.xz .
# # Add files to osc
# osc addremove
# # Commit and push the changes
# osc commit -m "Automated upload from GitHub Actions"

View File

@ -1,4 +1,4 @@
name: Package Launchpad PPA name: Package for Launchpad PPA
on: on:
workflow_call: workflow_call:
@ -14,7 +14,6 @@ on:
description: Ubuntu series to target description: Ubuntu series to target
required: true required: true
type: string type: string
workflow_dispatch:
permissions: permissions:
contents: write contents: write
@ -26,6 +25,7 @@ jobs:
secrets: inherit secrets: inherit
with: with:
series: ${{ inputs.series }} series: ${{ inputs.series }}
build_location: ppa
package-ppa: package-ppa:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
@ -55,6 +55,8 @@ jobs:
working-directory: meshtasticd working-directory: meshtasticd
run: | run: |
echo "deb=$(./bin/buildinfo.py deb)" >> $GITHUB_OUTPUT echo "deb=$(./bin/buildinfo.py deb)" >> $GITHUB_OUTPUT
env:
BUILD_LOCATION: ppa
id: version id: version
- name: Download artifacts - name: Download artifacts

View File

@ -32,13 +32,13 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Download artifacts - name: Download artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: firmware-raspbian-${{ steps.version.outputs.version }}.zip name: firmware-raspbian-${{ steps.version.outputs.long }}.zip
merge-multiple: true merge-multiple: true
- name: Display structure of downloaded files - name: Display structure of downloaded files
@ -77,14 +77,14 @@ jobs:
package: meshtasticd package: meshtasticd
package_root: .debpkg package_root: .debpkg
maintainer: Jonathan Bennett maintainer: Jonathan Bennett
version: ${{ steps.version.outputs.version }} # refs/tags/v*.*.* version: ${{ steps.version.outputs.long }} # refs/tags/v*.*.*
arch: arm64 arch: arm64
depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0 depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0
desc: Native Linux Meshtastic binary. desc: Native Linux Meshtastic binary.
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: meshtasticd_${{ steps.version.outputs.version }}_arm64.deb name: meshtasticd_${{ steps.version.outputs.long }}_arm64.deb
overwrite: true overwrite: true
path: | path: |
./*.deb ./*.deb

View File

@ -32,13 +32,13 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Download artifacts - name: Download artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: firmware-raspbian-armv7l-${{ steps.version.outputs.version }}.zip name: firmware-raspbian-armv7l-${{ steps.version.outputs.long }}.zip
merge-multiple: true merge-multiple: true
- name: Display structure of downloaded files - name: Display structure of downloaded files
@ -77,14 +77,14 @@ jobs:
package: meshtasticd package: meshtasticd
package_root: .debpkg package_root: .debpkg
maintainer: Jonathan Bennett maintainer: Jonathan Bennett
version: ${{ steps.version.outputs.version }} # refs/tags/v*.*.* version: ${{ steps.version.outputs.long }} # refs/tags/v*.*.*
arch: armhf arch: armhf
depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0 depends: libyaml-cpp0.7, openssl, libulfius2.7, libi2c0
desc: Native Linux Meshtastic binary. desc: Native Linux Meshtastic binary.
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: meshtasticd_${{ steps.version.outputs.version }}_armhf.deb name: meshtasticd_${{ steps.version.outputs.long }}_armhf.deb
overwrite: true overwrite: true
path: | path: |
./*.deb ./*.deb

View File

@ -2,7 +2,7 @@ name: Trigger release workflows upon Publish
on: on:
release: release:
types: [published] types: [published, released]
permissions: read-all permissions: read-all
@ -18,3 +18,10 @@ jobs:
${{ contains(github.event.release.name, 'Beta') && 'beta' || contains(github.event.release.name, 'Alpha') && 'alpha' }} ${{ contains(github.event.release.name, 'Beta') && 'beta' || contains(github.event.release.name, 'Alpha') && 'alpha' }}
series: ${{ matrix.series }} series: ${{ matrix.series }}
secrets: inherit secrets: inherit
# package-obs:
# uses: ./.github/workflows/package_obs.yml
# with:
# obs_repo: meshtasticd
# series: ${{ contains(github.event.release.name, 'Beta') && 'beta' || contains(github.event.release.name, 'Alpha') && 'alpha' }}
# secrets: inherit

View File

@ -55,14 +55,14 @@ jobs:
- name: Get release version string - name: Get release version string
if: always() # run this step even if previous step failed if: always() # run this step even if previous step failed
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Save coverage information - name: Save coverage information
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
if: always() # run this step even if previous step failed if: always() # run this step even if previous step failed
with: with:
name: lcov-coverage-info-native-simulator-test-${{ steps.version.outputs.version }}.zip name: lcov-coverage-info-native-simulator-test-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: ./coverage_*.info path: ./coverage_*.info
@ -81,7 +81,7 @@ jobs:
uses: ./.github/actions/setup-native uses: ./.github/actions/setup-native
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
# Disable (comment-out) BUILD_EPOCH. It causes a full rebuild between tests and resets the # Disable (comment-out) BUILD_EPOCH. It causes a full rebuild between tests and resets the
@ -96,7 +96,7 @@ jobs:
if: always() # run this step even if previous step failed if: always() # run this step even if previous step failed
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: platformio-test-report-${{ steps.version.outputs.version }}.zip name: platformio-test-report-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: ./testreport.xml path: ./testreport.xml
@ -111,7 +111,7 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
if: always() # run this step even if previous step failed if: always() # run this step even if previous step failed
with: with:
name: lcov-coverage-info-native-platformio-tests-${{ steps.version.outputs.version }}.zip name: lcov-coverage-info-native-platformio-tests-${{ steps.version.outputs.long }}.zip
overwrite: true overwrite: true
path: ./coverage_*.info path: ./coverage_*.info
@ -133,13 +133,13 @@ jobs:
repository: ${{github.event.pull_request.head.repo.full_name}} repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Get release version string - name: Get release version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version id: version
- name: Download test artifacts - name: Download test artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: platformio-test-report-${{ steps.version.outputs.version }}.zip name: platformio-test-report-${{ steps.version.outputs.long }}.zip
merge-multiple: true merge-multiple: true
- name: Test Report - name: Test Report
@ -152,7 +152,7 @@ jobs:
- name: Download coverage artifacts - name: Download coverage artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
pattern: lcov-coverage-info-native-*-${{ steps.version.outputs.version }}.zip pattern: lcov-coverage-info-native-*-${{ steps.version.outputs.long }}.zip
path: code-coverage-report path: code-coverage-report
merge-multiple: true merge-multiple: true
@ -165,5 +165,5 @@ jobs:
- name: Save Code Coverage Report - name: Save Code Coverage Report
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: code-coverage-report-${{ steps.version.outputs.version }}.zip name: code-coverage-report-${{ steps.version.outputs.long }}.zip
path: code-coverage-report path: code-coverage-report

View File

@ -22,12 +22,16 @@ jobs:
- name: Run Trunk Fmt - name: Run Trunk Fmt
run: trunk fmt run: trunk fmt
- name: Get release version string
run: echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version
- name: Commit and push changes - name: Commit and push changes
run: | run: |
git config --global user.name "github-actions[bot]" git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add . git add .
git commit -m "Add firmware version ${{ steps.version.outputs.version }}" git commit -m "Add firmware version ${{ steps.version.outputs.long }}"
git push git push
- name: Comment on PR - name: Comment on PR

View File

@ -12,6 +12,7 @@ jobs:
submodules: true submodules: true
- name: Update submodule - name: Update submodule
if: ${{ github.ref == 'refs/heads/master' }}
run: | run: |
git submodule update --remote protobufs git submodule update --remote protobufs

View File

@ -2,6 +2,7 @@ import configparser
import subprocess import subprocess
import os import os
run_number = os.getenv('GITHUB_RUN_NUMBER', '0') run_number = os.getenv('GITHUB_RUN_NUMBER', '0')
build_location = os.getenv('BUILD_LOCATION', 'local')
def readProps(prefsLoc): def readProps(prefsLoc):
"""Read the version of our project as a string""" """Read the version of our project as a string"""
@ -11,8 +12,8 @@ def readProps(prefsLoc):
version = dict(config.items("VERSION")) version = dict(config.items("VERSION"))
verObj = dict( verObj = dict(
short="{}.{}.{}".format(version["major"], version["minor"], version["build"]), short="{}.{}.{}".format(version["major"], version["minor"], version["build"]),
deb="unset",
long="unset", long="unset",
deb="unset",
) )
# Try to find current build SHA if if the workspace is clean. This could fail if git is not installed # Try to find current build SHA if if the workspace is clean. This could fail if git is not installed
@ -30,15 +31,15 @@ def readProps(prefsLoc):
# # short for 'dirty', we want to keep our verstrings source for protobuf reasons # # short for 'dirty', we want to keep our verstrings source for protobuf reasons
# suffix = sha + "-d" # suffix = sha + "-d"
verObj["long"] = "{}.{}".format(verObj["short"], suffix) verObj["long"] = "{}.{}".format(verObj["short"], suffix)
verObj["deb"] = "{}-{}~ppa{}".format(verObj["short"], run_number, sha) verObj["deb"] = "{}.{}~{}{}".format(verObj["short"], run_number, build_location, sha)
except: except:
# print("Unexpected error:", sys.exc_info()[0]) # print("Unexpected error:", sys.exc_info()[0])
# traceback.print_exc() # traceback.print_exc()
verObj["long"] = verObj["short"] verObj["long"] = verObj["short"]
verObj["deb"] = "{}-{}~ppa".format(verObj["short"], run_number) verObj["deb"] = "{}.{}~{}".format(verObj["short"], run_number, build_location)
# print("firmware version " + verStr) # print("firmware version " + verStr)
return verObj return verObj
# print("path is" + ','.join(sys.path)) # print("path is" + ','.join(sys.path))

2
debian/changelog vendored
View File

@ -1,4 +1,4 @@
meshtasticd (2.5.19) UNRELEASED; urgency=medium meshtasticd (2.5.19.0) UNRELEASED; urgency=medium
* Initial packaging * Initial packaging

View File

@ -2,6 +2,6 @@
export DEBEMAIL="github-actions[bot]@users.noreply.github.com" export DEBEMAIL="github-actions[bot]@users.noreply.github.com"
PKG_VERSION=$(python3 bin/buildinfo.py short) PKG_VERSION=$(python3 bin/buildinfo.py short)
dch --newversion "$PKG_VERSION-1" \ dch --newversion "$PKG_VERSION.0" \
--distribution UNRELEASED \ --distribution UNRELEASED \
"GitHub Actions Automatic version bump" "GitHub Actions Automatic version bump"

View File

@ -35,7 +35,11 @@ template <typename T, std::size_t N> std::size_t array_count(const T (&)[N])
} }
#if defined(NRF52840_XXAA) || defined(NRF52833_XXAA) || defined(ARCH_ESP32) || defined(ARCH_PORTDUINO) #if defined(NRF52840_XXAA) || defined(NRF52833_XXAA) || defined(ARCH_ESP32) || defined(ARCH_PORTDUINO)
#if defined(RAK2560)
HardwareSerial *GPS::_serial_gps = &Serial2;
#else
HardwareSerial *GPS::_serial_gps = &Serial1; HardwareSerial *GPS::_serial_gps = &Serial1;
#endif
#elif defined(ARCH_RP2040) #elif defined(ARCH_RP2040)
SerialUART *GPS::_serial_gps = &Serial1; SerialUART *GPS::_serial_gps = &Serial1;
#else #else

View File

@ -131,7 +131,6 @@ void AtakPluginModule::alterReceivedProtobuf(meshtastic_MeshPacket &mp, meshtast
} }
// Decompress for Phone (EUD) // Decompress for Phone (EUD)
auto decompressedCopy = packetPool.allocCopy(mp);
auto uncompressed = cloneTAKPacketData(t); auto uncompressed = cloneTAKPacketData(t);
uncompressed.is_compressed = false; uncompressed.is_compressed = false;
if (t->has_contact) { if (t->has_contact) {
@ -188,6 +187,7 @@ void AtakPluginModule::alterReceivedProtobuf(meshtastic_MeshPacket &mp, meshtast
LOG_DEBUG("Decompressed chat to_callsign: %d bytes", length); LOG_DEBUG("Decompressed chat to_callsign: %d bytes", length);
} }
} }
auto decompressedCopy = packetPool.allocCopy(mp);
decompressedCopy->decoded.payload.size = decompressedCopy->decoded.payload.size =
pb_encode_to_bytes(decompressedCopy->decoded.payload.bytes, sizeof(decompressedCopy->decoded.payload), pb_encode_to_bytes(decompressedCopy->decoded.payload.bytes, sizeof(decompressedCopy->decoded.payload),
meshtastic_TAKPacket_fields, &uncompressed); meshtastic_TAKPacket_fields, &uncompressed);

View File

@ -6,7 +6,6 @@ board_check = true
build_flags = ${nrf52840_base.build_flags} -Ivariants/rak2560 -D RAK_4631 build_flags = ${nrf52840_base.build_flags} -Ivariants/rak2560 -D RAK_4631
-L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m4/fpv4-sp-d16-hard" -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m4/fpv4-sp-d16-hard"
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely. -DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DMESHTASTIC_EXCLUDE_GPS=1
-DHAS_RAKPROT=1 ; Define if RAk OneWireSerial is used (disables GPS) -DHAS_RAKPROT=1 ; Define if RAk OneWireSerial is used (disables GPS)
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak2560> +<mesh/eth/> +<mesh/api/> +<mqtt/> build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak2560> +<mesh/eth/> +<mesh/api/> +<mqtt/>
lib_deps = lib_deps =