Commit graph

199 commits

Author SHA1 Message Date
Olaoluwa Osuntokun
14a01eb84f
Merge pull request #10577 from ellemouton/elle-cheaper-dedupe-model
ci: use haiku model for issue dedupe workflow
2026-02-17 17:28:19 -08:00
ziggieXXX
12b15c14a8
Merge pull request #10571 from ziggie1984/add-verify-release-workflow
ci: add verify-release workflow
2026-02-16 16:33:23 +01:00
ziggie
5e3d608761
ci: add verify-release workflow
Add a workflow that triggers when a release is published. It runs
verify-install.sh inside the official Docker image to validate
signatures and binary hashes. If verification fails, the release
is automatically set back to draft.
2026-02-13 10:35:11 +01:00
Elle Mouton
5f429f0aff
ci: use haiku model for issue dedupe workflow
Switch the claude-dedupe-issues workflow from the default (most
expensive) model to claude-haiku-4-5, which is significantly cheaper
and sufficient for issue duplicate detection.
2026-02-13 10:52:46 +02:00
Yong
1bdd0f9a29
Merge pull request #10562 from ziggie1984/fix-severity-cmd-classification
build: classify cmd/* as MEDIUM in PR severity bot
2026-02-12 21:03:24 +08:00
ziggieXXX
17b956d320
Merge pull request #10559 from lightningnetwork/elle-issue-dedupe
.claude+.github: add issue dedupe workflow
2026-02-11 14:29:04 +01:00
Elle Mouton
7baead7183
multi: add issue dedupe command and workflow
- add /dedupe command definition for Claude Code
- add workflow to run dedupe on issue opened
- add comment helper script for posting duplicates
2026-02-11 13:06:42 +02:00
ziggie
ad8b64417f
build: classify cmd/* as MEDIUM in PR severity bot
The severity bot was misclassifying CLI client code as HIGH because
filenames like cmd_walletunlocker.go matched the walletunlocker/*
auth/security keyword. Add cmd/* explicitly to the MEDIUM tier and
add a classification rule to prevent filename-based false positives.
2026-02-10 10:48:09 +01:00
Olaoluwa Osuntokun
0871193cdf ci: reduce pr-severity bot comment spam
Only post a severity classification comment when the bot hasn't
commented before or when the severity actually changed. Previously
every push (synchronize event) would post a new comment even if the
classification was identical.

The prompt now instructs the classifier to:
- Check for existing bot comments via the pr-severity-bot marker
- Compare the new severity against the existing severity label
- Skip commenting if both match, while still ensuring labels are correct
- Include a severity changed banner when re-commenting due to a change
2026-02-04 10:02:53 -08:00
Olaoluwa Osuntokun
7b93441814 ci: add tool constraints to pr-severity prompt
Claude keeps trying to use `gh api` to add severity labels, which gets
denied by the allowed tools restriction. Instead of retrying with the
permitted `gh pr edit --add-label` command, it silently gives up and
only posts the comment. The result is that severity comments appear on
PRs but the actual labels are never applied.

Add an explicit tool constraints section at the top of the prompt so
Claude knows upfront that only `gh pr view`, `gh pr edit`, and
`gh pr comment` are available.
2026-02-03 10:22:56 -08:00
Olaoluwa Osuntokun
a77b9d9b89 workflows/pr-severity: allow non-write users for classification
The PR severity classifier was failing for external contributors because
the claude-code-action checks that the actor has write permissions. Since
this workflow only reads PR metadata via the API and doesn't execute any
code from the PR (and has restricted tool permissions), it's safe to allow
any user to trigger classification.
2026-01-29 15:57:18 -04:00
Olaoluwa Osuntokun
bcb589cc9e workflows/claude: fix PR checkout for fork PRs
When a PR originates from a fork, the PR branch doesn't exist in the
origin remote. This adds a step that uses `gh pr checkout` before
running the Claude action, which properly handles fork PRs by adding
the fork as a remote and fetching the branch from there.
2026-01-29 13:30:41 -04:00
Olaoluwa Osuntokun
4d98b004ac workflows/pr-severity: use pull_request_target for fork PRs
Switch from pull_request to pull_request_target to allow the workflow
to run on PRs from forks. The pull_request trigger runs in the fork's
context which cannot access repository secrets.

This is safe because the workflow only reads PR metadata via the GitHub
API (changed files, labels) and doesn't checkout or execute any code
from the PR itself.
2026-01-28 15:18:19 -04:00
Olaoluwa Osuntokun
22c2cc21e8
Merge pull request #10526 from lightningnetwork/pr-severity-workflow
build: add PR severity classification workflow
2026-01-28 14:58:33 -04:00
Olaoluwa Osuntokun
ba52a27860 build: add PR severity classification workflow
Add a GitHub Actions workflow that uses Claude Code to automatically
classify PRs by severity based on the files changed. This helps
reviewers prioritize and understand PR complexity at a glance.

The workflow:
- Triggers on PR open and synchronize events
- Uses Claude Code to analyze changed files against severity mapping
- Applies one of four severity labels (critical/high/medium/low)
- Posts a detailed comment explaining the classification
- Supports manual override via severity-override-* labels

Severity mapping:
- CRITICAL: lnwallet, htlcswitch, contractcourt, peer, keychain, input,
  channeldb, funding, lnwire, server.go, rpcserver.go
- HIGH: routing, invoices, sweep, discovery, graph, watchtower, feature,
  lnrpc, macaroons, chainntnfs, etc.
- MEDIUM: payments, autopilot, lncfg, kvdb, proto files, etc.
- LOW: docs, tests, scripts, CI/CD config
2026-01-28 14:33:15 -04:00
Olaoluwa Osuntokun
c000478121 "Claude PR Assistant workflow" 2026-01-27 15:39:04 -04:00
ziggie
61d82fd1f2
build: update CI+release version to Go 1.25.5
This updates the toolchain which we require to build the LND
executable.
2026-01-13 16:07:38 +01:00
ziggie
dbb3a9e953
ci: fix some minor issues in the backport ci job
-Due to a newer version we need to use add_labels instead of just
 labels

-The backport PR will now also copy the milestones in case the
 milstones were set
2025-12-14 09:00:02 +01:00
ziggie
7ecdb9b807
ci: add automated backport workflow
This commit introduces an automated GitHub Actions workflow to streamline
the backporting process for merged PRs from master to release branches.

Key features:
- Triggers on merged PRs with labels matching 'backport-v*' pattern
  (e.g., backport-v0.20.x-branch)
- Validates that target branches exist before attempting backport
- Creates separate backport PRs for each target branch
- Automatically adds 'no-changelog' label to backport PRs
- Handles merge conflicts by creating draft PRs with conflict markers
- Supports multiple simultaneous backports via multiple labels

Workflow steps:
1. Checkout repository with full git history
2. Validate all target branches exist in the remote repository
3. For each valid backport label:
   - Create a new branch (backport-<pr-num>-to-<target-branch>)
   - Cherry-pick commits from the master PR
   - Create a new PR targeting the release branch
   - Link back to the original PR
4. If conflicts occur, create a draft PR for manual resolution

Label format:
- Valid: backport-v0.20.x-branch, backport-v0.19.x-branch
- Invalid: backport candidate, backport-candidate, backport-needed

This automation reduces manual work and ensures consistency in the
backporting process while maintaining full visibility and control
for maintainers.
2025-12-12 22:48:51 +01:00
yyforyongyu
57448a90c8
github: add unit-race for sql tests 2025-12-08 19:31:56 +08:00
Boris Nagaev
4fc8d8dda3
build: update CI+release version to Go 1.25.3
We also update the go.mod files to pin to Go 1.24.9.
2025-10-21 14:32:44 -03:00
Olaoluwa Osuntokun
b82ed88be5 ci: use enhanced cleanup action in release workflow
In this commit, we replace the basic inline cleanup command in the release
workflow with the comprehensive cleanup-space action that was previously
only used in the main CI workflow. The previous release workflow cleanup
simply removed the hostedtoolcache directory, which freed only a few
gigabytes and proved insufficient for multi-platform release builds.

By switching to the cleanup-space action (now enhanced to free 20-25GB),
the release workflow will have substantially more disk space available
before beginning the build process. This should resolve the disk space
exhaustion issues that were occurring during the Windows ARM build phase,
which is one of the final platforms in the 15-platform build sequence.
2025-10-20 22:39:47 +01:00
Olaoluwa Osuntokun
7fcbbd44ca
build: update CI+release version to Go 1.25.2
We also update the go.mod files to pin to Go 1.24.8.
2025-10-11 13:39:51 +01:00
Yong
0c1746a093
Merge pull request #10174 from hexcow/patch-1
chore(ci): upgrade checkout to v5
2025-09-15 15:29:55 +08:00
Olaoluwa Osuntokun
33406bc6f8
build: make special label checks auto-pass instead of skip
In this commit, we revamp the way our skip-labels worked to instead mark
certain stages as green, instead of skipping them. Skipped changes
didn't count towards the set of required checks, which slowed down PR
velocity.

Previously, when PRs were labeled with 'no-itest' or 'no-changelog',
the corresponding CI jobs would be completely skipped. This caused the
GitHub checks to show as skipped rather than successful, which could
be confusing and prevented certain merge rules from working properly.

This commit changes the behavior so that these jobs still run but
immediately report success when the special labels are detected. Each
affected job now starts with a label check step that sets a skip
flag, and all subsequent steps are conditionally executed based on
this flag. When skipped, the jobs add a notice to the GitHub step
summary explaining that tests were auto-passed due to the label.

The change affects five jobs: basic-integration-test, integration-test,
windows-integration-test, macos-integration-test, and milestone-check.
2025-09-03 16:09:31 -07:00
Boris Nagaev
6ffe257004
multi: bump Go to 1.24.6 2025-08-30 14:13:44 -03:00
hexcow
f1c807d482
chore(ci): upgrade checkout to v5 2025-08-25 11:06:38 +03:00
ziggie
1fb284fa26
github actions: move pgp key to daily builds 2025-08-19 08:35:42 +02:00
Gustavo Stingelin Cardoso Filho
7ba28c4961
CI: add pgp keys expire check 2025-08-14 15:36:10 -03:00
ziggie
87844cd5b4
multi: bump Golang version to v1.23.12 2025-08-07 16:53:45 +02:00
Boris Nagaev
9e58a644aa
go.mod: bump google.golang.org/protobuf to 1.33.0
Updated github.com/golang/protobuf to v1.5.4 to be compatible with
google.golang.org/protobuf.

Updated the pinned version in pinned_dep CI job.
2025-07-25 12:20:24 -03:00
yyforyongyu
af2f935ab7
.github: add timeout when sending coverage reports
We also make it cancelable.
2025-07-18 15:41:46 +08:00
yyforyongyu
f2e1c11593
.github: remove github.job from the cache key and update docs
This commit adds a more descriptive docs about the caching process. In
addition, the `github.job` is now removed from the cache key
construction to allow jobs sharing the same cache. In addition, given we
now use `inputs.key-prefix`, the `github.job` is no longer relevant as
the `key-prefix` already creates a unique name for the cache.

We also update the lint and check commits job to use the same cache from
the unit test, given they are running in the same environment.
2025-07-18 15:41:46 +08:00
yyforyongyu
4b1a68778e
.github: use title case in job names
To unify the format used in job names.
2025-07-18 15:41:46 +08:00
yyforyongyu
a83dcaffae
.github: add new action cleanup-space 2025-07-18 15:41:44 +08:00
yyforyongyu
81ce5aad94
.github: run PR review stats only for side branches 2025-07-17 20:42:24 +08:00
yyforyongyu
db0927fb95
.github: auto clean caches older than 12 hours 2025-07-17 20:42:24 +08:00
yyforyongyu
4f98a0313a
.github: add write permission to delete caches 2025-07-17 20:42:24 +08:00
yyforyongyu
da2b3469dd
.github: move small tasks onto the same machine
Thus saving us from the overhead cost, also they can share the same
cache file.
2025-07-17 20:42:21 +08:00
yyforyongyu
77380debbc
.github: replace the aggressive cleanup with a more targeted one
This follows GitHub's official recommendation to avoid re-downloading
essential tools that setup-go might depend on
2025-07-17 16:02:35 +08:00
yyforyongyu
583b8562ab
.github: use module cache only whenever possible 2025-07-17 16:02:33 +08:00
Boris Nagaev
643fbb8af6
multi: update Go to 1.23.10 2025-07-16 01:19:58 -03:00
Elle Mouton
e38aa6d1e0
multi: itest jobs with SQL graph backend
In this commit, a new `test_native_sql` build flag is defined. If this
build flag is used along with the `--use-native-sql` config option, then
the SQLStore implementation of the graphdb.V1Store will be initialised.
This is then used to run our itest suite against the new SQLStore graph
implementation.

NOTE that this only works for new nodes currently - the migration from
kv-to-sql is yet to be implemeneted.
2025-06-26 10:12:54 +02:00
Elle Mouton
b4121acb1f
graph/db: add a framework for testing against SQL backends incrementally
In this commit, we implement the postgres and sqlite versions of the
NewTestDB function. We add the various build flags so that only one of
the three versions of this function can be active at a time.

We also introduce the SQLStore struct which is the SQL implementation of
the V1Store interface.

NOTE: it currently temporarily embeds the KVStore struct so that we can
implement the V1Store interface incrementally. For any method not
implemented, things will fall back to the KVStore. This is ONLY the
case for the time being while this struct is purely used in unit tests
only. Once all the methods have been implemented, the KVStore field will
be removed from the SQLStore struct.
2025-05-22 14:14:42 +02:00
Olaoluwa Osuntokun
1c76c6198c
build: bump Go version to v1.23.9 2025-05-06 15:50:16 -07:00
Oliver Gugger
d9089b11ac
GitHub: fix order of operations 2025-04-24 08:36:17 +02:00
Oliver Gugger
337d9a9b23
Merge pull request #9628 from guggero/bitcoind-29
scripts+GitHub: use bitcoind v29.0
2025-04-17 16:23:00 +02:00
Oliver Gugger
f4a6c3487a
scripts+GitHub: use bitcoind v29.0 2025-04-17 09:07:01 +02:00
Oliver Gugger
5ac72ed282
GitHub: disable cache, remove hosted tools cache
In an attempt to fix the "out of disk space" build error during release
builds, we first disable using Golang caches (which can be quite large)
and then remove a bunch of pre-installed tools and their caches to
provide some additional disk storage.
2025-04-07 12:23:16 +02:00
Olivier BARTHELEMY
336799ad48 Fix release build command
vendor folder needs to be inside lnd-source folder for the following comands to work, but the two tar commands extract them in separate folder
2025-03-31 13:01:09 +01:00