Compare commits

...

7 Commits

Author SHA1 Message Date
Jorijn Schrijvershof
5b43f9ed12 Merge pull request #19 from jorijn/release-please--branches--main--components--meshcore-stats
chore(main): release 0.2.3
2026-01-05 08:58:53 +01:00
Jorijn Schrijvershof
0fe6c66ed8 chore(main): release 0.2.3 2026-01-05 08:57:16 +01:00
Jorijn Schrijvershof
2730a9d906 ci: use fine-grained PAT for release-please to trigger Docker builds
GITHUB_TOKEN cannot trigger other workflows by design. Using a
fine-grained PAT (RELEASE_PLEASE_TOKEN) scoped to this repo only
allows releases to properly trigger the docker-publish workflow.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 08:57:01 +01:00
Jorijn Schrijvershof
5e5d63fca3 Merge pull request #18 from jorijn/release-please--branches--main--components--meshcore-stats
chore(main): release 0.2.2
2026-01-05 08:48:14 +01:00
github-actions[bot]
92b2286e18 chore(main): release 0.2.2 2026-01-05 07:47:54 +00:00
Jorijn Schrijvershof
6776c2c429 fix: move serial device config to override file
Docker Compose merges arrays instead of replacing them, so having
a default device in docker-compose.yml caused conflicts with override
files. Serial device configuration now requires docker-compose.override.yml,
which is cleaner since:
- Device paths vary per system
- TCP transport users don't need devices at all

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 08:47:34 +01:00
Jorijn Schrijvershof
e3a1df4aa6 fix(ci): skip smoke test when manual push is disabled 2026-01-05 08:41:58 +01:00
9 changed files with 51 additions and 17 deletions

View File

@@ -9,7 +9,12 @@
"Bash(find:*)",
"Bash(tree:*)",
"Skill(frontend-design)",
"Skill(frontend-design:*)"
"Skill(frontend-design:*)",
"Bash(gh run view:*)",
"Bash(gh run list:*)",
"Bash(gh release view:*)",
"Bash(gh release list:*)",
"Bash(gh workflow list:*)"
]
}
}

View File

@@ -212,8 +212,9 @@ jobs:
continue-on-error: true
# Smoke test - verify image runs correctly
# Skip for manual runs when push is disabled (image not available to pull)
- name: Smoke test
if: "!(github.event_name == 'schedule' && steps.get-version.outputs.skip == 'true')"
if: "!(github.event_name == 'schedule' && steps.get-version.outputs.skip == 'true') && !(github.event_name == 'workflow_dispatch' && inputs.push == false)"
run: |
IMAGE_TAG="${{ steps.image-tag.outputs.tag }}"

View File

@@ -5,6 +5,17 @@ on:
branches:
- main
# Note: We use a fine-grained PAT (RELEASE_PLEASE_TOKEN) instead of GITHUB_TOKEN
# because GITHUB_TOKEN cannot trigger other workflows (like docker-publish.yml).
# This is a GitHub security feature to prevent infinite workflow loops.
#
# The PAT requires these permissions (scoped to this repository only):
# - Contents: Read and write (for creating releases and pushing tags)
# - Pull requests: Read and write (for creating/updating release PRs)
#
# To rotate: Settings > Developer settings > Fine-grained tokens
# Recommended rotation: Every 90 days
permissions:
contents: write
pull-requests: write
@@ -16,6 +27,6 @@ jobs:
- name: Release Please
uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
config-file: release-please-config.json
manifest-file: .release-please-manifest.json

View File

@@ -1,3 +1,3 @@
{
".": "0.2.1"
".": "0.2.3"
}

View File

@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
This changelog is automatically generated by [release-please](https://github.com/googleapis/release-please) based on [Conventional Commits](https://www.conventionalcommits.org/).
## [0.2.3](https://github.com/jorijn/meshcore-stats/compare/v0.2.2...v0.2.3) (2026-01-05)
### Continuous Integration
* use fine-grained PAT for release-please to trigger Docker builds ([2730a9d](https://github.com/jorijn/meshcore-stats/commit/2730a9d906eeb5761af29dd69e8d4ebbfca50491))
## [0.2.2](https://github.com/jorijn/meshcore-stats/compare/v0.2.1...v0.2.2) (2026-01-05)
### Bug Fixes
* **ci:** skip smoke test when manual push is disabled ([e3a1df4](https://github.com/jorijn/meshcore-stats/commit/e3a1df4aa64bf87c32848be0d5c5e5ce16968186))
* move serial device config to override file ([6776c2c](https://github.com/jorijn/meshcore-stats/commit/6776c2c4293b71f4649a42dcf6c517f3b44469b5))
## [0.2.1](https://github.com/jorijn/meshcore-stats/compare/v0.2.0...v0.2.1) (2026-01-05)

View File

@@ -171,18 +171,21 @@ See `meshcore.conf.example` for all available options.
#### Serial Device Access
The container needs access to your USB serial device. To customize the device path without modifying the tracked `docker-compose.yml`, create a `docker-compose.override.yml` file (gitignored):
For serial transport, the container needs access to your USB serial device. Create a `docker-compose.override.yml` file (gitignored) to specify your device:
```yaml
# docker-compose.override.yml - Local overrides (not tracked in git)
# docker-compose.override.yml - Local device configuration (not tracked in git)
services:
meshcore-stats:
devices:
- /dev/ttyACM0:/dev/ttyACM0:rw # Your device path
- /dev/ttyUSB0:/dev/ttyUSB0:rw # Linux example
# - /dev/ttyACM0:/dev/ttyACM0:rw # Alternative Linux device
```
This file is automatically merged with `docker-compose.yml` when running `docker compose up`.
> **Note**: TCP transport users (e.g., macOS with socat) don't need a devices section - just configure `MESH_TRANSPORT=tcp` in your `meshcore.conf`.
On the host, ensure the device is accessible:
```bash

View File

@@ -3,7 +3,7 @@
# Use this file for local development with live code changes.
#
# Usage:
# docker compose -f docker-compose.yml -f docker-compose.development.yml up --build
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
#
# This override:
# - Builds the image locally instead of pulling from ghcr.io

View File

@@ -1,12 +1,13 @@
# MeshCore Stats - Docker Compose Configuration
#
# Production deployment using published container image.
# For local development, use: docker compose -f docker-compose.yml -f docker-compose.development.yml up
# For local development, use: docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
#
# Prerequisites:
# 1. Copy meshcore.conf.example to meshcore.conf and configure
# 2. Ensure your user has access to the serial device (dialout group)
# 3. Create data directories with correct ownership:
# 2. For serial transport: Create docker-compose.override.yml with your device (see README)
# 3. Ensure your user has access to the serial device (dialout group)
# 4. Create data directories with correct ownership:
# mkdir -p ./data/state ./out && sudo chown -R 1000:1000 ./data ./out
services:
@@ -14,7 +15,7 @@ services:
# MeshCore Stats - Data collection and rendering
# ==========================================================================
meshcore-stats:
image: ghcr.io/jorijn/meshcore-stats:0.2.1 # x-release-please-version
image: ghcr.io/jorijn/meshcore-stats:0.2.3 # x-release-please-version
container_name: meshcore-stats
restart: unless-stopped
@@ -22,10 +23,8 @@ services:
env_file:
- meshcore.conf
# Serial device for companion node communication
devices:
# Update to match your serial device (e.g., /dev/ttyACM0, /dev/cu.usbserial-*)
- /dev/ttyUSB0:/dev/ttyUSB0:rw
# NOTE: Serial device must be added via docker-compose.override.yml
# See README.md for examples. TCP transport users don't need devices.
volumes:
# Persistent storage for SQLite database and circuit breaker state

View File

@@ -1,3 +1,3 @@
"""MeshCore network monitoring library."""
__version__ = "0.2.1" # x-release-please-version
__version__ = "0.2.3" # x-release-please-version