ci: check subtrees

Does a checkout of the full commit history and checks the status
integrity of each subtree using the git-subtree-check.sh provided
in contrib/devtools. Default subtree remotes are defined in the
new file contrib/subtrees.json
This commit is contained in:
Patrick Lodder 2025-03-31 09:56:40 -04:00
parent 6747a2d300
commit b0342b0dfa
No known key found for this signature in database
GPG Key ID: 7C523F5FBABE80E7
2 changed files with 32 additions and 0 deletions

View File

@ -15,3 +15,18 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Lint translation files - name: Lint translation files
run: python3 contrib/devtools/check-translations.py run: python3 contrib/devtools/check-translations.py
subtrees:
name: Check Subtrees
runs-on: ubuntu-24.04
steps:
- name: Install prerequisites
run: sudo apt update && sudo apt install -y bash git jq
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check subtree integrity
run: |
jq -r '.[] | [.name, .remote] | join(" ")' contrib/subtrees.json | xargs -n2 git remote add
jq -r '.[].name' contrib/subtrees.json | xargs -n1 git fetch
jq -r '.[].path' contrib/subtrees.json | xargs -n1 bash contrib/devtools/git-subtree-check.sh

17
contrib/subtrees.json Normal file
View File

@ -0,0 +1,17 @@
[
{
"name": "univalue-subtree",
"path": "src/univalue",
"remote": "https://github.com/dogecoin/univalue-subtree.git"
},
{
"name": "secp256k1-subtree",
"path": "src/secp256k1",
"remote": "https://github.com/bitcoin-core/secp256k1.git"
},
{
"name": "leveldb-subtree",
"path": "src/leveldb",
"remote": "https://github.com/bitcoin-core/leveldb-subtree"
}
]