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