You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-46Lines changed: 21 additions & 46 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,60 +17,35 @@ Device packages must be space separated, prepend a `-` if you don't want a packa
17
17
18
18
In the `packagelist` repository you can configure packages that are globally installed. The suffixes after `_` correspond to the suffixes in the `profiles` directory. It is possible to define packages for every OpenWrt Build we support.
19
19
20
-
Currently we build images for OpenWrt 21.02 and OpenWrt 22.03.
20
+
Currently we build packages for OpenWrt 24.10 and OpenWrt 25.12.
21
21
22
-
## Cross-Repository Builds
22
+
## Package Versioning
23
23
24
-
This repository is responsible for developing and building OpenWrt packages. After a successful package build, a firmware build is automatically triggered in the [imagebuilder](https://github.com/weimarnetz/imagebuilder) repository.
24
+
Every package must define `PKG_VERSION`and `PKG_RELEASE`in its Makefile:
25
25
26
-
### Workflow
26
+
```makefile
27
+
PKG_VERSION:=1.2.0
28
+
PKG_RELEASE:=1
29
+
```
27
30
28
-
1. Changes to package sources in this repository are pushed
29
-
2. GitHub Actions compiles the packages for various target architectures
30
-
3. The compiled packages are uploaded to the build server
31
-
4. After all package builds complete successfully, a repository dispatch event is sent to the imagebuilder repository
32
-
5. The imagebuilder repository then automatically starts its firmware builds using the latest packages
31
+
-`PKG_VERSION` is the semantic version of the package. Bump it when the package content changes.
32
+
-`PKG_RELEASE` is the packaging release counter. Bump it for packaging-only changes (e.g. dependency adjustments) and reset it to `1` when `PKG_VERSION` is incremented.
33
33
34
-
### Setting up Cross-Repository Communication
34
+
A CI check on pull requests verifies that at least one of these values was incremented when package files are modified. The check must pass before the PR can be merged.
35
35
36
-
Communication between repositories is handled via a GitHub App. Here's how to set it up:
36
+
## Releases and Feeds
37
37
38
-
1.**Create a GitHub App**:
39
-
- Go to GitHub Settings → Developer settings → GitHub Apps → New GitHub App
40
-
- Enter a name (e.g., "Weimarnetz Build Dispatcher")
41
-
- Homepage URL: Repository or organization URL
42
-
- Disable Webhook (not needed)
43
-
- Under "Repository permissions":
44
-
-**Metadata**: `Read-only`
45
-
-**Contents**: `Read and write` (required for repository_dispatch)
46
-
- Click "Create GitHub App"
38
+
The `weimarnetz-tng` branch is the **stable** branch. All development happens in feature branches and is merged via pull requests.
47
39
48
-
2.**Install the App in repositories**:
49
-
- After creation, select "Install App" in the left menu
50
-
- Choose the "weimarnetz" organization
51
-
- Select "Only select repositories" and mark both the packages and imagebuilder repositories
52
-
- Click "Install"
40
+
-**Stable feed**: Packages are built and uploaded automatically when a PR is merged into `weimarnetz-tng`.
41
+
-**Testing feed**: Any branch can be built into the testing feed by manually triggering the build workflow via *Actions → Weimarnetz Package Build → Run workflow*.
53
42
54
-
3.**Generate App ID and Private Key**:
55
-
- Return to the App configuration page
56
-
- Note the "App ID" (a number)
57
-
- Scroll down to "Private keys" and click "Generate a private key"
58
-
- Save the downloaded file securely
43
+
Devices can subscribe to either feed:
59
44
60
-
4.**Add Secrets to the repository**:
61
-
- Go to repository settings → Secrets and variables → Actions
62
-
- Create two new secrets:
63
-
-`GH_APP_ID`: The App ID from step 3
64
-
-`GH_APP_PRIVATE_KEY`: The contents of the downloaded private key file
- The workflow `.github/workflows/assemblefirmware.yml` already contains the necessary configuration to trigger the imagebuilder after successful package builds
68
-
69
-
### Troubleshooting
70
-
71
-
If the cross-repository trigger doesn't work:
72
-
73
-
- Verify that the GitHub App has the correct permissions
74
-
- Ensure the App is installed in both repositories
75
-
- Check the secrets `GH_APP_ID` and `GH_APP_PRIVATE_KEY`
76
-
- Review GitHub Actions logs for detailed error messages
0 commit comments