Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
406 commits
Select commit Hold shift + click to select a range
965675b
Add wallet info support for mirage
badrogger Jul 7, 2025
973db9e
Merge pull request #876 from skalenetwork/add-init-update
dmytrotkk Jul 8, 2025
0a2aa22
Fix fair node info and fair wallet info commands
dmytrotkk Jul 12, 2025
b672888
Remove fair node signature test
dmytrotkk Jul 12, 2025
eb0df6d
Merge pull request #881 from skalenetwork/fix-fair-commands
dmytrotkk Jul 15, 2025
de7ad28
Rename mirage to fair
dmytrotkk Jul 15, 2025
5b95fd8
Update scripts in test pipeline
dmytrotkk Jul 15, 2025
d2d6a93
Fix generate info execution
dmytrotkk Jul 15, 2025
95f7d65
Fix backup test
dmytrotkk Jul 15, 2025
3c28bca
Merge pull request #885 from skalenetwork/fair-renaming
dmytrotkk Jul 15, 2025
ce84371
Trigger node-cli build
dmytrotkk Jul 15, 2025
37af9a4
Merge pull request #886 from skalenetwork/trigger-build
dmytrotkk Jul 15, 2025
c03df76
Improve cleanup
badrogger Jul 15, 2025
66e36ef
Fix node-cli build in publish pipeline
dmytrotkk Jul 16, 2025
65dd4e5
Merge pull request #889 from skalenetwork/trigger-build
dmytrotkk Jul 16, 2025
dac0e0c
Merge branch 'fair' into fix-cleanup-datadir
badrogger Jul 16, 2025
761edf8
Fix and improve datadir cleanup code
badrogger Jul 17, 2025
0cfefbe
Fix files cleanup
badrogger Jul 17, 2025
8a2f315
Add fair repair command
badrogger Jul 18, 2025
a552345
Disable test that test nothing
badrogger Jul 18, 2025
06de31d
Use only snapshot_from field
badrogger Jul 21, 2025
98a08ed
Merge pull request #887 from skalenetwork/fix-cleanup-datadir
dmytrotkk Jul 21, 2025
d9e24ae
Merge branch 'fair' into add-fair-repair
badrogger Jul 21, 2025
aef6cf8
Rename request_repair to trigger_skaled_snapshot_mode
badrogger Jul 21, 2025
c041a37
Merge pull request #891 from skalenetwork/add-fair-repair
dmytrotkk Jul 22, 2025
0183dea
Add `change-ip` command
alexgex Jul 24, 2025
4a71977
Add texts for `change-ip` command
alexgex Jul 24, 2025
c8fe17c
Improve texts for Fair commands
alexgex Jul 24, 2025
d21fd7a
Fit code to PEP 8
alexgex Jul 24, 2025
f05aafe
Add `change-ip` to ROUTES
alexgex Jul 25, 2025
1251c42
Replace decorator @click.option for `change-ip` by @click.argument
alexgex Jul 26, 2025
300d3c1
Fix tests
alexgex Jul 28, 2025
9467dad
Fix firewall chain moving during migrate
badrogger Jul 28, 2025
42a990f
Merge pull request #893 from skalenetwork/add-change-ip-command
dmytrotkk Jul 29, 2025
2ada60e
Fix fair repair snapshot-from validation
badrogger Jul 29, 2025
eb0b13e
Merge branch 'fair' into fix-migrate
badrogger Jul 29, 2025
6a7e025
Merge pull request #894 from skalenetwork/fix-migrate
dmytrotkk Jul 30, 2025
cf04391
Rename CONTAINER_CONFIGS_STREAM to NODE_VERSION
dmytrotkk Jul 31, 2025
2f0e02a
Update fair node cli readme - add new command, update boot/node commands
dmytrotkk Jul 31, 2025
9ea3c16
Add force-skaled-start option for fair node update
dmytrotkk Jul 31, 2025
204e6d1
Fix force_skaled_start flag
dmytrotkk Aug 1, 2025
bfcea0e
Merge pull request #895 from skalenetwork/add-force-config-update
dmytrotkk Aug 1, 2025
b5c2933
Add fair node exit command
dmytrotkk Aug 4, 2025
98089f5
Add copilot instructions
dmytrotkk Aug 4, 2025
66e079f
Fix migrate from boot test
dmytrotkk Aug 4, 2025
ec1f265
Fix node exit route
dmytrotkk Aug 4, 2025
2fe8538
Add streamed cmd decorator to node exit, fix api test
dmytrotkk Aug 5, 2025
4c3921d
Merge pull request #901 from skalenetwork/add-node-exit-command
dmytrotkk Aug 5, 2025
e98c82b
Add fair chain commands - checks and record
dmytrotkk Aug 5, 2025
1e2accc
Add string formatters
dmytrotkk Aug 5, 2025
df49e5b
Add fair chain routes to tests
dmytrotkk Aug 5, 2025
83612af
Merge pull request #903 from skalenetwork/add-chain-namespace-fair
dmytrotkk Aug 6, 2025
69a2d37
Rename sync node to passive
dmytrotkk Aug 6, 2025
ea85aa5
Add `set_domain_name` function for FAIR nodes
alexgex Aug 6, 2025
24869ec
Add `set_domain_name` command for FAIR nodes
alexgex Aug 6, 2025
d7681a6
Sort imports
alexgex Aug 6, 2025
7acee44
Add import sort check
alexgex Aug 7, 2025
0959449
Add 'set-domain-name' to 'ROUTS' for FAIR node
alexgex Aug 7, 2025
663b340
Disable import sort check
alexgex Aug 7, 2025
a85445d
Fix tests
alexgex Aug 7, 2025
c9879cf
Fix tests
alexgex Aug 7, 2025
e4e313c
Add telegraf related env params to fair
badrogger Aug 8, 2025
20a37cd
Remove influx_db_token
badrogger Aug 8, 2025
bbee0f5
Merge pull request #907 from skalenetwork/add-telegraf
dmytrotkk Aug 8, 2025
18e092c
Merge pull request #906 from skalenetwork/add-set-domain-command-for-…
dmytrotkk Aug 8, 2025
e6c23e7
Update node-cli internal structure - WIP
dmytrotkk Aug 8, 2025
9b5c410
Restructure node-cli - add NodeType and NodeMode to all modules
dmytrotkk Aug 10, 2025
8e2e70d
Add passive fair node cli
dmytrotkk Aug 10, 2025
d247c2c
Merge changes from fair branch
dmytrotkk Aug 10, 2025
a82671e
Update imports structure
dmytrotkk Aug 10, 2025
d3b9387
Update node-cli tests
dmytrotkk Aug 11, 2025
64e8db7
Replace get_node_mode with upsert_node_mode, update fair and skale no…
dmytrotkk Aug 11, 2025
8426a49
Bump version, update node tests
dmytrotkk Aug 11, 2025
7e96e12
Add active_node_option fixture, update tests
dmytrotkk Aug 11, 2025
6a1bd8b
Fix fair node commands
dmytrotkk Aug 11, 2025
1bb430e
Remove resource allocation cli, add passive node setup command
dmytrotkk Aug 11, 2025
9dc3dd2
Fix ruff checks
dmytrotkk Aug 12, 2025
45a9254
Fix setup cmd for skale node, add watchdog and filebeat to the passiv…
dmytrotkk Aug 12, 2025
34762f1
Add passive node options FAIR, add id to init command
dmytrotkk Aug 14, 2025
4629131
Fix ruff check
dmytrotkk Aug 14, 2025
df0cdc5
Merge pull request #905 from skalenetwork/passive-nodes-fair
dmytrotkk Aug 15, 2025
d623dc3
Fix fair node tests
dmytrotkk Aug 15, 2025
f5befb7
Fix disk mounting in fair node init
dmytrotkk Aug 18, 2025
48d587c
Update fair node tests
dmytrotkk Aug 18, 2025
20aa725
Update fair node tests
dmytrotkk Aug 18, 2025
aa315fb
Merge pull request #910 from skalenetwork/passive-nodes-fair
dmytrotkk Aug 18, 2025
d26de21
Skip host requirements for fair passive nodes, update tests
dmytrotkk Aug 19, 2025
bf871da
Fix cleanup and checkers tests
dmytrotkk Aug 19, 2025
569fe0c
Add test for passive node checker
dmytrotkk Aug 19, 2025
55d4e68
Merge pull request #913 from skalenetwork/add-passive-node-checks
dmytrotkk Aug 19, 2025
e957437
Add node mode to checked host
dmytrotkk Aug 19, 2025
70e56e4
Fix ruff check
dmytrotkk Aug 19, 2025
3291fa8
Fix fair boot op
dmytrotkk Aug 19, 2025
432b509
Fix fair boot commands
dmytrotkk Aug 19, 2025
8425e40
Fix fair boot tests
dmytrotkk Aug 19, 2025
6f24d6a
Fix checked host wrapper
dmytrotkk Aug 19, 2025
380a084
Merge pull request #915 from skalenetwork/add-passive-node-checks
dmytrotkk Aug 19, 2025
03a9eac
Add 311 port to ServicePort
badrogger Aug 20, 2025
c65ec36
Rename disk mountpoint to block device
dmytrotkk Aug 21, 2025
16f8e8e
rename docker lvmpy version, update readme
dmytrotkk Aug 21, 2025
c44b6ca
Merge pull request #916 from skalenetwork/add-311-port
dmytrotkk Aug 21, 2025
f88038d
Merge pull request #918 from skalenetwork/rename-disk-mountpoint
dmytrotkk Aug 21, 2025
21426c2
Add staking commands, update README
dmytrotkk Aug 26, 2025
e5a4995
Fix routes test
dmytrotkk Aug 26, 2025
b3e3e5e
Add confirmation to all staking commands
dmytrotkk Aug 26, 2025
f119f4f
Merge send fees commands, update api routes
dmytrotkk Aug 27, 2025
af5cc41
Rename value to amount in send fees
dmytrotkk Aug 27, 2025
7a96029
Merge claim fees commands
dmytrotkk Aug 27, 2025
e9dc98e
Merge pull request #919 from skalenetwork/add-staking-commands
dmytrotkk Aug 27, 2025
c3af550
Fix check_ssl_connection() function
kucharskim Jun 17, 2025
a5c70aa
Move to dp.wait() in check_ssl_connection()
kucharskim Jun 23, 2025
54ab23a
Read from /dev/null in detached_subprocess()
kucharskim Jun 23, 2025
614d729
Merge pull request #920 from skalenetwork/add-ssl-check-from-develop
badrogger Sep 2, 2025
2272e94
Rename compose services, update container names
dmytrotkk Sep 3, 2025
4d37dbc
Revert to sk_schain prefix
dmytrotkk Sep 3, 2025
99290e6
Update is api running helper, update containers test
dmytrotkk Sep 3, 2025
62167f8
Update resource alloc generation
dmytrotkk Sep 4, 2025
5193835
Merge pull request #923 from skalenetwork/rename-compose-services
dmytrotkk Sep 5, 2025
0c83e49
Fix fair-api service name
dmytrotkk Sep 8, 2025
04239c4
Merge pull request #925 from skalenetwork/fix-api-service-name
dmytrotkk Sep 8, 2025
9903d20
Add `turn on` and `turn off` commands for FAIR nodes
alexgex Sep 10, 2025
85cb965
Fix skaled container name in docker utils
dmytrotkk Sep 11, 2025
c21ac67
Fix containers test
dmytrotkk Sep 11, 2025
8859711
Merge pull request #927 from skalenetwork/fix-skaled-container-name
dmytrotkk Sep 11, 2025
b7071f0
Merge branch 'fair' of github.com:skalenetwork/node-cli into add-fair…
alexgex Sep 11, 2025
0bfdb9e
Remove `sync_schains` parameter
alexgex Sep 11, 2025
878419a
Add `turn_on_node` and `turn_off_node` commands for passive FAIR nodes
alexgex Sep 11, 2025
be22867
Rename `turn on/off` functions
alexgex Sep 11, 2025
2baf27e
Update `turn_on` function to support FAIR nodes
alexgex Sep 11, 2025
9c3d290
Fix nginx container name
dmytrotkk Sep 12, 2025
4110edc
Merge pull request #929 from skalenetwork/fix-skaled-container-name
dmytrotkk Sep 15, 2025
d35f885
Sort imports
alexgex Sep 16, 2025
0b01cde
Update README.md
alexgex Sep 16, 2025
da2d5b8
Update staking functions
dmytrotkk Sep 17, 2025
2abf4b8
Merge pull request #931 from skalenetwork/update-staking-functions
dmytrotkk Sep 17, 2025
06ad45e
Merge pull request #928 from skalenetwork/add-fair-node-turn-on-and-t…
dmytrotkk Sep 18, 2025
42d4533
Fix repair cmd
dmytrotkk Sep 18, 2025
466e11e
Merge pull request #933 from skalenetwork/fix-repair-cmd
dmytrotkk Sep 18, 2025
c38d88f
Fix snapshot option for passive nodes, add logs
dmytrotkk Sep 25, 2025
273368b
Add fair passive node tests
dmytrotkk Sep 25, 2025
4af819d
Merge pull request #937 from skalenetwork/fix-snapshot-option-fair-pa…
dmytrotkk Sep 25, 2025
ae3bfc6
Fix init and update commands for SKALE nodes
dmytrotkk Oct 27, 2025
c756859
Add common cleanup function for SKALE active and passive nodes
alexgex Oct 28, 2025
26ba3ff
Change `cleanup_passive` function by common one for all SKALE nodes
alexgex Oct 28, 2025
f892699
Add CLI cleanup commands for SKALE nodes
alexgex Oct 28, 2025
84633cc
Add implementation for function `cleanup_active`
alexgex Oct 28, 2025
b3f11b6
Add `prune` option for SKALE node clean up commands
alexgex Oct 28, 2025
0a1abc4
Rename `cleanup_node` function to `_cleanup_node`
alexgex Oct 29, 2025
3e0d446
Add `prune` option for FAIR node clean up commands
alexgex Oct 29, 2025
89cc3b0
Rename `_cleanup_node` function to `cleanup_node`
alexgex Oct 29, 2025
fc2b09a
Update SKALE passive node clean up tests
alexgex Oct 29, 2025
2780195
Apply formatting according to Ruff rules
alexgex Oct 29, 2025
f18fbbf
Add SKALE active node clean up test
alexgex Oct 29, 2025
3f11ac2
Add `prune` option for FAIR node clean up functions
alexgex Oct 29, 2025
64fc97f
Delete unused import
alexgex Oct 29, 2025
9e8f489
Add test for FAIR active node cleanup
alexgex Oct 29, 2025
59781ce
Add test for FAIR passive node cleanup
alexgex Oct 29, 2025
8840987
Update Fair node tests
alexgex Oct 30, 2025
b9346b7
Fix FAIR node tests
alexgex Oct 30, 2025
879d447
Merge branch 'skale-commands-migration' of github.com:skalenetwork/no…
alexgex Oct 30, 2025
17cdb8e
Add test for SKALE node cleanup
alexgex Oct 31, 2025
894abc4
Unmount `no_lvm_datadir` volume after cleanup
alexgex Oct 31, 2025
438b1f4
Remove `@check_inited` decorator for SKALE node cleanup function
alexgex Nov 3, 2025
78c4614
Update SKALE node cleanup test
alexgex Nov 3, 2025
2fed20e
Fix `test_cleanup_passive_datadir` test
alexgex Nov 3, 2025
2618097
Skip user config validation during cleanup process
alexgex Nov 4, 2025
c8b4760
Update `test_cleanup_success` for SKALE node
alexgex Nov 4, 2025
e5e7ee0
Skip user config validation during cleanup of FAIR nodes
alexgex Nov 5, 2025
ee18662
Update tests
alexgex Nov 5, 2025
2be08b8
Rename `cleanup_active` function to `cleanup_lvm_datadir` and move to…
alexgex Nov 18, 2025
1130045
Rename `skip_usr_conf_validation` parameter to `skip_user_conf_valida…
alexgex Nov 18, 2025
bec919e
Delete unused import
alexgex Nov 18, 2025
30c4d59
Merge pull request #945 from skalenetwork/add-cleanup-commands-for-sk…
dmytrotkk Nov 18, 2025
75ef67c
Pull changes from develop
dmytrotkk Nov 18, 2025
4904c6e
Merge pull request #948 from skalenetwork/merge-changes-develop-fair
badrogger Nov 18, 2025
4749972
Merge pull request #947 from skalenetwork/fair
dmytrotkk Nov 19, 2025
371d712
Add pyproject.toml
alexgex Nov 19, 2025
0eeb193
Add classifiers and keywords
alexgex Nov 20, 2025
798d273
Add homepage url
alexgex Nov 20, 2025
1f458f5
Exclude the tests directory from the final package
alexgex Nov 20, 2025
e6d4b12
Set `include_package_data` to `True`
alexgex Nov 20, 2025
87ecf0d
Bump Python version to 3.13
alexgex Nov 20, 2025
74c5719
Update dependencies
alexgex Nov 20, 2025
357d12d
Delete outdated setup.py
alexgex Nov 20, 2025
0c1e0d8
Use `python:3.13-bookworm`
alexgex Nov 20, 2025
1768b73
Bump Python and actions version
alexgex Nov 20, 2025
a80db48
Delete unused ruff.toml
alexgex Nov 20, 2025
239bcf1
Handle `OSError` exception
alexgex Nov 20, 2025
37781b9
Use 'Group' instead of deprecated 'MultiCommand'
alexgex Nov 21, 2025
2c77239
Disable warnings from static analyzer
alexgex Nov 21, 2025
6c5b526
Replace `str_to_bool` with a new implementation without deleted `dist…
alexgex Nov 21, 2025
f4c68cc
Update all dependencies to their latest versions
alexgex Nov 21, 2025
108257d
Bump `setuptools` version to 80.9.0
alexgex Nov 21, 2025
e3dbf31
Update `dev` dependencies to their latest versions
alexgex Nov 21, 2025
258d964
Use builder, slim image and uv
alexgex Nov 21, 2025
52e8a60
Install `binutils`
alexgex Nov 21, 2025
3ff9c2f
Bump `python-dateutil` version to 2.9.0.post0
alexgex Nov 24, 2025
bff05d8
Set `quote-style` to "single"
alexgex Nov 24, 2025
e791fb8
Use `uv` for installing dependencies
alexgex Nov 24, 2025
4bd90cc
Create `venv`
alexgex Nov 24, 2025
623e821
Run `prepare test build` in `venv`
alexgex Nov 24, 2025
c72148b
Bump Python version to 3.13
alexgex Nov 24, 2025
7f0f2f0
Use importlib.metadata to get package version
alexgex Nov 24, 2025
6c94e9a
Get version from 'pyproject.toml'
alexgex Nov 24, 2025
0fdbbdd
Modernize and simplify the release workflow
alexgex Nov 24, 2025
1fc9118
Add new branch for new release workflow testing
alexgex Nov 24, 2025
e0c77ff
Merge pull request #949 from skalenetwork/test-new-release-workflow
alexgex Nov 24, 2025
cac1d9b
Generate `generate_release_notes`
alexgex Nov 24, 2025
c4400ae
Merge pull request #950 from skalenetwork/test-new-release-workflow
alexgex Nov 24, 2025
a7d7479
Remove test branch and improve task names
alexgex Nov 25, 2025
46baade
Build `node-cli-builder` only once
alexgex Nov 25, 2025
94122ea
Make PyInstaller spec paths absolute
alexgex Nov 25, 2025
e0b77cd
Remove `PackageNotFoundError` handling
alexgex Nov 25, 2025
89a28c4
Fix skale passive node options
dmytrotkk Dec 26, 2025
1f953bb
Move the configuration from `pytest.ini` to `pyproject.toml`
alexgex Dec 29, 2025
a116b32
Merge pull request #951 from skalenetwork/migrate-to-pyproject
dmytrotkk Dec 29, 2025
9733409
Merge pull request #953 from skalenetwork/update-passive-node-skale
alexgex Dec 29, 2025
4923b54
Remove PASSIVE_COMPOSE_PATH
alexgex Dec 30, 2025
45de1fb
Add api and watchdog containers to `BASE_PASSIVE_COMPOSE_SERVICES`
alexgex Jan 5, 2026
7b7d589
Set Redis data directory ownership
alexgex Jan 7, 2026
fae6a38
Run `run_host_checks` during passive SKALE node init
alexgex Jan 9, 2026
0bc7f3a
Run `run_host_checks` during passive SKALE node update
alexgex Jan 9, 2026
67b6861
Move `init_fair_boot` and `update_fair_boot` functions to `fair.py`
alexgex Jan 13, 2026
3b0e92d
Delete unused constant `BASE_CONTAINERS_AMOUNT`
alexgex Jan 13, 2026
05d1251
Delete unused parameter `unsafe_ok`
alexgex Jan 13, 2026
e63a42d
Remove redundant parentheses
alexgex Jan 13, 2026
5ba2a8c
Fix `tail` parameter type
alexgex Jan 13, 2026
5debc47
Add `node_mode` parameter
alexgex Jan 13, 2026
afc79ee
Clean code
alexgex Jan 13, 2026
88f6959
Delete duplicated function `ensure_filestorage_mapping`
alexgex Jan 13, 2026
795f1a3
Clean code
alexgex Jan 13, 2026
6ba3237
Fix `get_containers` and `create_logs_dump` functions
alexgex Jan 13, 2026
475a211
Delete unused optional parameter `unsafe_ok`
alexgex Jan 13, 2026
b8dca65
Fix `get_containers` function
alexgex Jan 13, 2026
4f45d33
Merge pull request #954 from skalenetwork/merge-skale-active-and-pass…
alexgex Jan 14, 2026
d00ec04
Add `bite` variable
alexgex Jan 25, 2026
9741c4e
Merge pull request #955 from skalenetwork/add-bite-skaled-support
dmytrotkk Jan 26, 2026
c190221
update settings structure - wip
dmytrotkk Feb 13, 2026
6e9c173
new settings structure
dmytrotkk Feb 16, 2026
070111c
Update node-cli to use skale core package
dmytrotkk Feb 16, 2026
19d277e
remove unused modules, fix test pipeline
dmytrotkk Feb 16, 2026
24ffcb0
fix passive node tests
dmytrotkk Feb 16, 2026
34a83f5
fix passive node tests
dmytrotkk Feb 16, 2026
7afb231
update fixtures
dmytrotkk Feb 16, 2026
df5bdde
fix fair node tests
dmytrotkk Feb 16, 2026
6447de3
fix node tests
dmytrotkk Feb 16, 2026
a31d653
fix nftables test
dmytrotkk Feb 16, 2026
cdd64e4
Merge pull request #956 from skalenetwork/update-settings-structure
dmytrotkk Feb 16, 2026
d27173b
merge changes from beta
dmytrotkk Feb 16, 2026
f5ca8b1
Merge pull request #957 from skalenetwork/merge-changes-from-beta
dmytrotkk Feb 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .flake8

This file was deleted.

20 changes: 20 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
- always keep the changes minimal and purposeful
- focus on fixing the exact problem or implementing the exact feature
- keep the code simple, do not write defensive code
- do not describe your changes in details after you made changes, focus on writing code
- do not generate any documentation, the code should be self-explanatory
- do not generate any in-line comments
- for the new files, always add a license header, same format as in the existing files
- no commented out code
- no console logs in production code
- no unused imports
- no redundant code - move repeated logic into helper functions
- use type hints to specify the expected types of function arguments and return values

- check `pyproject.toml` for formatting rules
- always lint changes using `uv run ruff check`
- tests should be placed in `tests/` directory, follow the existing structure and code style
- always use `uv` to run all commands in the repo (e.g., `uv run ruff`, `uv run pytest`, etc.)
- for running tests, export environment variables in the terminal before running the tests: `. ./scripts/export_env.sh`

- additional external context is located in context directory
202 changes: 50 additions & 152 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,180 +1,78 @@
name: Build and publish

on:
pull_request:
types: [closed]
branches:
- master
- develop
- beta
- stable
- 'v*.*.*'

jobs:
create_release:
build_and_release:
if: github.event.pull_request.merged
name: Create release
name: Build and create release
runs-on: ubuntu-22.04
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
version: ${{ steps.export_outputs.outputs.version }}
branch: ${{ steps.export_outputs.outputs.branch }}
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
submodules: true

- name: Checkout submodules
run: git submodule update --init

- name: Install ubuntu dependencies
run: |
sudo apt-get update
sudo apt-get install python-setuptools
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.13

- name: Set Versions
- name: Calculate version
id: versioning
run: |
bash ./scripts/set_versions_ga.sh

- name: Set release

- name: Determine prerelease status
id: release_info
run: |
if [[ "$BRANCH" == "stable" ]]; then
export PRERELEASE=false
if [[ "${{ env.BRANCH }}" == "stable" ]]; then
echo "prerelease=false" >> $GITHUB_OUTPUT
else
export PRERELEASE=true
echo "prerelease=true" >> $GITHUB_OUTPUT
fi
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build binaries
id: build
run: |
mkdir -p ${{ github.workspace }}/dist
docker build . -t node-cli-builder

docker run --rm -v ${{ github.workspace }}/dist:/app/dist node-cli-builder \
bash scripts/build.sh ${{ env.VERSION }} ${{ env.BRANCH }} skale

docker run --rm -v ${{ github.workspace }}/dist:/app/dist node-cli-builder \
bash scripts/build.sh ${{ env.VERSION }} ${{ env.BRANCH }} fair

echo "dist_path=${{ github.workspace }}/dist" >> $GITHUB_OUTPUT

- name: Generate checksums
run: |
cd ${{ steps.build.outputs.dist_path }}
for file in skale-*; do
sha512sum "$file" > "$file.sha512"
done
echo "Checksums generated:"
ls -l *.sha512

- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.VERSION }}
release_name: ${{ env.VERSION }}
name: Release ${{ env.VERSION }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Export outputs
id: export_outputs
run: |
echo "::set-output name=version::$VERSION"
echo "::set-output name=branch::$BRANCH"

build_and_publish_normal:
if: github.event.pull_request.merged
needs: create_release
name: Build and publish for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-22.04
asset_name: skale-${{ needs.create_release.outputs.version }}-Linux-x86_64
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.11
uses: actions/setup-python@v1
with:
python-version: 3.11

- name: Install ubuntu dependencies
if: matrix.os == 'ubuntu-22.04'
run: |
sudo apt-get update

- name: Checkout submodules
run: git submodule update --init

- name: Build normal binary
run: |
mkdir -p ./dist
docker build . -t node-cli-builder
docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh ${{ needs.create_release.outputs.version }} ${{ needs.create_release.outputs.branch }} normal
ls -altr /home/ubuntu/dist/
docker rm -f $(docker ps -aq)

- name: Save sha512sum
run: |
sudo sha512sum /home/ubuntu/dist/${{ matrix.asset_name }} | sudo tee > /dev/null /home/ubuntu/dist/sha512sum

- name: Upload release binary
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: /home/ubuntu/dist/${{ matrix.asset_name }}
asset_name: ${{ matrix.asset_name }}
asset_content_type: application/octet-stream

- name: Upload release checksum
id: upload-release-checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: /home/ubuntu/dist/sha512sum
asset_name: ${{ matrix.asset_name }}.sha512
asset_content_type: text/plain

build_and_publish_sync:
if: github.event.pull_request.merged
needs: create_release
name: Build and publish for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-22.04
asset_name: skale-${{ needs.create_release.outputs.version }}-Linux-x86_64-sync
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.11
uses: actions/setup-python@v1
with:
python-version: 3.11

- name: Install ubuntu dependencies
if: matrix.os == 'ubuntu-22.04'
run: |
sudo apt-get update

- name: Checkout submodules
run: git submodule update --init

- name: Build sync release binary
run: |
mkdir -p ./dist
docker build . -t node-cli-builder
docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh ${{ needs.create_release.outputs.version }} ${{ needs.create_release.outputs.branch }} sync
ls -altr /home/ubuntu/dist/
docker rm -f $(docker ps -aq)

- name: Save sha512sum
run: |
sudo sha512sum /home/ubuntu/dist/${{ matrix.asset_name }} | sudo tee > /dev/null /home/ubuntu/dist/sha512sum

- name: Upload release sync CLI
id: upload-sync-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: /home/ubuntu/dist/${{ matrix.asset_name }}
asset_name: ${{ matrix.asset_name }}
asset_content_type: application/octet-stream

- name: Upload release sync CLI checksum
id: upload-sync-release-checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: /home/ubuntu/dist/sha512sum
asset_name: ${{ matrix.asset_name }}.sha512
asset_content_type: text/plain
prerelease: ${{ steps.release_info.outputs.prerelease }}
generate_release_notes: true
files: |
${{ steps.build.outputs.dist_path }}/skale-*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57 changes: 37 additions & 20 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,68 +1,85 @@
name: Test
on: [push, pull_request]
on: [push]

jobs:
test:
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: [3.11]
python-version: ['3.13']
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true

- name: Checkout submodules
run: git submodule update --init

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh

- name: Cache uv
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}

- name: Install ubuntu dependencies
run: |
sudo apt-get update
sudo apt-get install iptables nftables python3-nftables

- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
uv venv
uv pip install -e ".[dev]"

- name: Generate info
run: bash ./scripts/generate_info.sh 1.0.0 my-branch skale

- name: Lint with flake8
- name: Check with ruff
run: |
flake8 .
uv run ruff check

- name: Build binary - normal
- name: Build docker image
run: docker build . -t node-cli-builder

- name: Build binary - skale
run: |
mkdir -p ./dist
docker build . -t node-cli-builder
docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh test test normal
docker run -v /home/ubuntu/dist:/app/dist node-cli-builder bash scripts/build.sh test test skale
docker rm -f $(docker ps -aq)

- name: Check build - normal
- name: Check build - skale
run: sudo /home/ubuntu/dist/skale-test-Linux-x86_64

- name: Build binary - sync
- name: Build binary - fair
run: |
mkdir -p ./dist
docker build . -t node-cli-builder
docker run -v /home/ubuntu/dist:/app/dist node-cli-builder scripts/build.sh test test sync
docker run -v /home/ubuntu/dist:/app/dist node-cli-builder bash scripts/build.sh test test fair
docker rm -f $(docker ps -aq)

- name: Check build - sync
run: sudo /home/ubuntu/dist/skale-test-Linux-x86_64-sync
- name: Check build - fair
run: sudo /home/ubuntu/dist/skale-test-Linux-x86_64-fair

- name: Run prepare test build
run: |
scripts/build.sh test test normal
uv run bash scripts/build.sh test test skale

- name: Run redis
run: |
bash ./helper-scripts/redis/run.sh

- name: Run tests
run: |
export PYTHONPATH=${PYTHONPATH}:/usr/lib/python3/dist-packages/
bash ./scripts/run_tests.sh
uv run bash ./scripts/run_tests.sh

- name: Run nftables tests
run: |
scripts/run_nftables_test.sh
uv run scripts/run_nftables_test.sh
10 changes: 8 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,16 @@ node_cli/cli/info.py

meta.json

disk_mountpoint.txt
block_device.txt
sgx_server_url.txt
resource_allocation.json
conf.json
test-env

nginx.conf
nginx.conf
tests/.skale/node_data/docker.json
tests/.skale/node_data/node_options.json
tests/.skale/config/nginx.conf.j2

.zed
uv.lock
Loading
Loading