1- # should deny
21name : Test
32on : [pull_request]
43jobs :
54 test :
65 runs-on : ubuntu-24.04
6+ container :
7+ image : stackwallet/stackwallet-ci:latest
8+ credentials :
9+ username : ${{ secrets.DOCKERHUB_USERNAME }}
10+ password : ${{ secrets.DOCKERHUB_TOKEN }}
711 steps :
812 - name : Prepare repository
9- uses : actions/checkout@v4
13+ uses : actions/checkout@v6
1014 with :
1115 fetch-depth : 0
12- - name : Install Flutter
13- uses : subosito/flutter-action@v2
14- with :
15- flutter-version : ' 3.38.1'
16- channel : ' stable'
17-
18- # - name: Setup | Rust
19- # uses: dtolnay/rust-toolchain@stable
20- # with:
21- # components: clippy
22- - name : Checkout submodules
23- run : git submodule update --init --recursive
24-
25- - name : install dependencies
26- run : |
27- cargo install cargo-ndk
28- rustup target add x86_64-unknown-linux-gnu
29- sudo apt update
30- sudo apt install -y meson ninja-build libglib2.0-dev libgcrypt20-dev libgirepository1.0-dev unzip automake build-essential file pkg-config git python3 libtool cmake openjdk-8-jre-headless libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev llvm debhelper libclang-dev opencl-headers libssl-dev ocl-icd-opencl-dev libc6-dev-i386
31- # - name: Build Epic Cash
32- #run: |
33- #cd crypto_plugins/flutter_libepiccash/scripts/linux/
34- #./build_all.sh
16+ submodules : recursive
3517
3618 - name : Configure app
3719 run : |
3820 cd scripts
39- yes yes | ./build_app.sh -v "0.0.1" -b "1" -p "linux" -a "stack_wallet" || true
21+ echo " yes" | ./build_app.sh -v "0.0.1" -b "1" -p "linux" -a "stack_wallet" -d -s
4022
4123 - name : Get dependencies
4224 run : flutter pub get
4325
44- - name : Create temp files
45- id : secret-file1
26+ - name : Create git_versions.dart stubs
4627 run : |
47- $secretFileExchange = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "lib/external_api_keys.dart";
48- $encodedBytes = [System.Convert]::FromBase64String($env:CHANGE_NOW);
49- Set-Content $secretFileExchange -Value $encodedBytes -AsByteStream;
50- $secretFileExchangeHash = Get-FileHash $secretFileExchange;
51- Write-Output "Secret file $secretFileExchange has hash $($secretFileExchangeHash.Hash)";
52-
53- $secretFileBitcoin = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/bitcoin/bitcoin_wallet_test_parameters.dart";
54- $encodedBytes = [System.Convert]::FromBase64String($env:BITCOIN_TEST);
55- Set-Content $secretFileBitcoin -Value $encodedBytes -AsByteStream;
56- $secretFileBitcoinHash = Get-FileHash $secretFileBitcoin;
57- Write-Output "Secret file $secretFileBitcoin has hash $($secretFileBitcoinHash.Hash)";
58-
59- $secretFileDogecoin = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/dogecoin/dogecoin_wallet_test_parameters.dart";
60- $encodedBytes = [System.Convert]::FromBase64String($env:DOGECOIN_TEST);
61- Set-Content $secretFileDogecoin -Value $encodedBytes -AsByteStream;
62- $secretFileDogecoinHash = Get-FileHash $secretFileDogecoin;
63- Write-Output "Secret file $secretFileDogecoin has hash $($secretFileDogecoinHash.Hash)";
64-
65- $secretFileFiro = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/firo/firo_wallet_test_parameters.dart";
66- $encodedBytes = [System.Convert]::FromBase64String($env:FIRO_TEST);
67- Set-Content $secretFileFiro -Value $encodedBytes -AsByteStream;
68- $secretFileFiroHash = Get-FileHash $secretFileFiro;
69- Write-Output "Secret file $secretFileFiro has hash $($secretFileFiroHash.Hash)";
70-
71- $secretFileBitcoinCash = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/bitcoincash/bitcoincash_wallet_test_parameters.dart";
72- $encodedBytes = [System.Convert]::FromBase64String($env:BITCOINCASH_TEST);
73- Set-Content $secretFileBitcoinCash -Value $encodedBytes -AsByteStream;
74- $secretFileBitcoinCashHash = Get-FileHash $secretFileBitcoinCash;
75- Write-Output "Secret file $secretFileBitcoinCash has hash $($secretFileBitcoinCashHash.Hash)";
76-
77- $secretFileNamecoin = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/namecoin/namecoin_wallet_test_parameters.dart";
78- $encodedBytes = [System.Convert]::FromBase64String($env:NAMECOIN_TEST);
79- Set-Content $secretFileNamecoin -Value $encodedBytes -AsByteStream;
80- $secretFileNamecoinHash = Get-FileHash $secretFileNamecoin;
81- Write-Output "Secret file $secretFileNamecoin has hash $($secretFileNamecoinHash.Hash)";
82-
83- $secretFileParticl = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/particl/particl_wallet_test_parameters.dart";
84- $encodedBytes = [System.Convert]::FromBase64String($env:PARTICL_TEST);
85- Set-Content $secretFileParticl -Value $encodedBytes -AsByteStream;
86- $secretFileParticlHash = Get-FileHash $secretFileParticl;
87- Write-Output "Secret file $secretFileParticl has hash $($secretFileParticlHash.Hash)";
88-
89- shell : pwsh
28+ mkdir -p crypto_plugins/flutter_libepiccash/lib
29+ mkdir -p crypto_plugins/flutter_libmwc/lib
30+
31+ cat > crypto_plugins/flutter_libepiccash/lib/git_versions.dart << 'EOF'
32+ String getPluginVersion() => "stub-for-tests";
33+ EOF
34+
35+ cat > crypto_plugins/flutter_libmwc/lib/git_versions.dart << 'EOF'
36+ String getPluginVersion() => "stub-for-tests";
37+ EOF
38+
39+ - name : Decode secrets
9040 env :
9141 CHANGE_NOW : ${{ secrets.CHANGE_NOW }}
92- BITCOIN_TEST : ${{ secrets.BITCOIN_TEST }}
93- DOGECOIN_TEST : ${{ secrets.DOGECOIN_TEST }}
94- FIRO_TEST : ${{ secrets.FIRO_TEST }}
95- BITCOINCASH_TEST : ${{ secrets.BITCOINCASH_TEST }}
96- NAMECOIN_TEST : ${{ secrets.NAMECOIN_TEST }}
97- PARTICL_TEST : ${{ secrets.PARTICL_TEST }}
42+ run : |
43+ echo "$CHANGE_NOW" | base64 --decode > lib/external_api_keys.dart
44+
45+ - name : Ensure app config for tests
46+ run : bash scripts/ensure_test_app_config.sh
47+
48+ - name : Create test stubs
49+ run : bash prebuild.sh
50+ working-directory : scripts
51+
52+ - name : Regenerate mocks
53+ run : dart run build_runner build --delete-conflicting-outputs
9854
9955 - name : Check formatting of changed files
10056 run : |
@@ -114,29 +70,14 @@ jobs:
11470# - name: Analyze
11571# run: flutter analyze
11672 - name : Test
117- run : flutter test --coverage
73+ run : |
74+ bash scripts/ensure_test_app_config.sh
75+ test -s lib/app_config.g.dart
76+ grep -Fq "part of 'app_config.dart';" lib/app_config.g.dart
77+ flutter test --coverage
11878 - name : Upload to code coverage
11979 uses : codecov/codecov-action@v1.2.2
12080 if : success() || failure()
12181 with :
12282 token : ${{secrets.CODECOV_TOKEN}}
12383 file : coverage/lcov.info
124- - name : Delete temp files
125- run : |
126- $secretFileExchange = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "lib/external_api_keys.dart";
127- $secretFileBitcoin = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/bitcoin/bitcoin_wallet_test_parameters.dart";
128- $secretFileDogecoin = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/dogecoin/dogecoin_wallet_test_parameters.dart";
129- $secretFileFiro = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/firo/firo_wallet_test_parameters.dart";
130- $secretFileBitcoinCash = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/bitcoincash/bitcoincash_wallet_test_parameters.dart";
131- $secretFileNamecoin = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/namecoin/namecoin_wallet_test_parameters.dart";
132- $secretFileParticl = Join-Path -Path $env:GITHUB_WORKSPACE -ChildPath "test/services/coins/particl/particl_wallet_test_parameters.dart";
133-
134- Remove-Item -Path $secretFileExchange;
135- Remove-Item -Path $secretFileBitcoin;
136- Remove-Item -Path $secretFileDogecoin;
137- Remove-Item -Path $secretFileFiro;
138- Remove-Item -Path $secretFileBitcoinCash;
139- Remove-Item -Path $secretFileNamecoin;
140- Remove-Item -Path $secretFileParticl;
141- shell : pwsh
142- if : always()
0 commit comments