File tree Expand file tree Collapse file tree 2 files changed +96
-0
lines changed Expand file tree Collapse file tree 2 files changed +96
-0
lines changed Original file line number Diff line number Diff line change
1
+ from ledgered .github import GitHubLedgerHQ , NoManifestException , Condition
2
+ from github .GithubException import GithubException
3
+
4
+ import sys
5
+ import json
6
+
7
+ if len (sys .argv ) != 2 :
8
+ print ("Usage: get_rust_apps.py <github_token>" )
9
+ sys .exit (1 )
10
+
11
+ # Excluded Rust apps
12
+ # app-kadena-legacy: has been replaced by app-kadena
13
+ # app-pocket: does not build (Obsidians' Alamgu issue)
14
+ excluded_apps = ["app-kadena-legacy" , "app-pocket" ]
15
+
16
+ # Retrieve all public apps on LedgerHQ GitHub organization
17
+ token = sys .argv [1 ]
18
+ gh = GitHubLedgerHQ (token )
19
+ apps = gh .apps .filter (private = Condition .WITHOUT , archived = Condition .WITHOUT )
20
+
21
+ rust_apps = []
22
+ exclude_apps = []
23
+ # loop all apps in gh.apps
24
+ for app in apps :
25
+ try :
26
+ manifest = app .manifest
27
+ except NoManifestException as e :
28
+ pass
29
+ except GithubException as e :
30
+ pass
31
+ else :
32
+ # Filter out apps that are Rust based
33
+ if manifest .app .sdk == "rust" :
34
+ if app .name not in excluded_apps :
35
+ rust_apps .append ({"app-name" : app .name , "branch" : app .current_branch })
36
+
37
+ # save the list of (apps, device) pairs to build in a json format:
38
+ with open ("rust_app_branch.json" , "w" ) as f :
39
+ f .write (json .dumps (rust_apps ))
Original file line number Diff line number Diff line change
1
+ name : Build and Test all Rust apps with last nightly
2
+ permissions :
3
+ contents : read
4
+
5
+ on :
6
+ workflow_call :
7
+ workflow_dispatch :
8
+ schedule :
9
+ # * is a special character in YAML so you have to quote this string
10
+ - cron : ' 0 12 * * *'
11
+
12
+ jobs :
13
+ retrieve-rust-apps :
14
+ name : Retrieve Rust Apps
15
+ runs-on : ubuntu-latest
16
+ outputs :
17
+ rust_apps : ${{ steps.get_rust_apps.outputs.rust_apps }}
18
+ steps :
19
+ - name : Checkout repository
20
+ uses : actions/checkout@v4
21
+ with :
22
+ repository : LedgerHQ/ledger-device-rust-sdk
23
+ ref : ' master'
24
+ - name : Set up Python
25
+ uses : actions/setup-python@v4
26
+ with :
27
+ python-version : ' 3.x'
28
+ - name : Install ledgered
29
+ run : pip install ledgered
30
+ - name : Get all rust apps
31
+ id : get_rust_apps
32
+ run : |
33
+ python .github/workflows/get_rust_app_branch.py ${{ secrets.GITHUB_TOKEN }}
34
+ echo "rust_apps=$(cat rust_apps.json)" >> $GITHUB_OUTPUT
35
+
36
+ display-rust-apps :
37
+ name : Display Rust Apps
38
+ runs-on : ubuntu-latest
39
+ needs : retrieve-rust-apps
40
+ steps :
41
+ - name : Display Rust Apps
42
+ run : |
43
+ echo "Rust apps: ${{ needs.retrieve-rust-apps.outputs.rust_apps }}"
44
+
45
+ build_and_test :
46
+ name : Build and test for all apps
47
+ needs : retrieve-rust-apps
48
+ strategy :
49
+ fail-fast : false
50
+ matrix :
51
+ app-name : ["app-boilerplate-rust"]
52
+ app-branch : ["main"]
53
+ include : ${{ fromJSON(needs.retrieve-rust-apps.outputs.rust_apps) }}
54
+ uses : ./.github/workflows/reusable_build_and_test_with_last_nightly.yml
55
+ with :
56
+ app-repository : ${{ matrix.app-repo }}
57
+ app-branch-name : ${{ matrix.app-branch }}
You can’t perform that action at this time.
0 commit comments