4578cda0ae
* Network-requester: throttle inbound connections (#1789) * Return and handle ClientRequest::LaneQueueLenghts * Pass lane queue lengths to inbound future * Remove unused self reference * Request lane queue lengths periodically for all open connections * Add timeouts * Rename to ConnectionCommandSender and Receiver * Rename to client_connection_tx/rx * Fix wasm build * Replace bool with enum * rust: bump required version to 1.65 in some crates that need it * Add step to release GH actions (#1792) * feat: add a release step to nym contracts GH action * feat: add shrinking the size of wasm * Possibilty to change gateway ws listener (#1779) * add: set gatewayListener * Update types.ts * Update worker.ts * Update contracts-build.yml * real_traffic_stream: reduce frequency of status print (#1794) * Update wallet and connect lock files (#1793) * client-core: add warning when delay multiplier is larger than 1 * Fix decrypting stored received msg (#1786) * Fix decrypting stored received msg * rustfmt * Moving binary message recovery to separate function Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com> * Feature/use expect instead of panicking (#1797) * Implementation of 'Debug' on 'RealMessage' * expect with failed channel name instead of throwing empty panics * Introduced Debug trait constraint in ProxyRunner * Derive Debug for socks5_requests::Message * Make connection_id optional in ClientRequest::Send (#1798) * changelog: add missing entry for fixing message decrypt in gateway-client * websocket-requests: fix length check before deserialize (#1799) * Fix export dkg contract addr (#1800) * Export dkg contract for mainnet when no config file present * Remove redundant env files * nym-cli: improve error reporting/handling and changed `vesting-schedule` queries to use query client instead of signing client * Feature/gateway client protocol version (#1795) * Introducing concept of gateway protocol version * Remove version-based gateway filtering * Fixed the unit test * grammar * Set build on latest release on schedule event * Added nightly build workflow on second latest release * socks5: if any task panics, signal all other tasks to shutdown (#1805) * socks5: signal shutdown on error * Mark as success * Tidy * Reduce wait to 5 sec * Replace unwrap with expect * Two more unwraps * Update changelog * client-core: less frequent status logging (#1806) * Feature/nym connect UI updates (#1784) * create custom titlebar * create help page * create generic modal component * create separate connection time component * link to shipyard docs * move timer to separate component and update connection status component usage * use separate component for copying ip and port details * only show infomodal once after connection * set service provider on tauri side * Emit events when stopped * listen and unlisten for tauri events * connect: add trace log to get_services * Add back CI notifications * Update README Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com> Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com> * Use default serde value for upgrade (#1807) * fix ui overflow bug (#1808) * update nym connect error text (#1809) * set flag to false * Fix wait_for_signal_and_error on win (#1811) * Add socks5-client changes to nym-connect changelog * Fix links in nym-connect changelog * More entries in nym-connect CHANGELOG * Fix typo in changelog * Update CHANGELOG.md * Experiment/client refactoring (#1814) * experimenting with extracting more common client code * drying up the wasm client * allowing some dead code for the time being * fixed formatting in nym-connect * made socks5 client inside nym-connect immutable * made clippy a bit happier * hidden away target locking for recv timeout * New transactions for increasing amount of pledged tokens * unit tests * Added an option to pledge extra tokens through the vesting contract * Introduced wallet endpoints for new operations * Using updated pledge cap in the vesting contract * Bumping version numbers * Changelog for v1.1.1 * Bumping final version numbers for 1.1.1 * Bumping nym-cli version, missed it last time * socks5-client: SOCKS4a support (#1822) * socks5-client: SOCKS4a support * Tidy * Fix a few errors in socks5 client and network-requester (#1823) * Fix two unwraps in socks5 and network-requester * Make sure client task never sends shutdown signal * Fix panic on getting socks version * wip * connecting to the back and making the requests work * display details modal * logs removal * Feature/pledge more (#1679) * New transactions for increasing amount of pledged tokens * unit tests * Added an option to pledge extra tokens through the vesting contract * Introduced wallet endpoints for new operations * Using updated pledge cap in the vesting contract * Changelog update * nym-connect: update lock file * avoid mix tokens pools * amount error * envs/mainnet: update to latest mixnet contract and nymd validator url * validator-api: add missing shortform for --config-env-file (#1830) * gateway-client: handle shutdown listener (#1829) * WIP * WIP: try another approach * WIP * Reworked * Tidy * fix * validator-api: remove storage dependency in contract cache (#1685) * validator-api: remove storage dependency in contract cache * validator-client: update detailed routes * contract_cache: forward to new endpoints for compat * Move reward_estimate * client: add --no-cover and update --fastmode (#1831) * adding a oversaturaded bonding more modal * common/task: extract out spawn_with_report_error (#1837) * stop panic on failed buffer request * Compilable wasm client * Enabled hard error on lack of gateway-client protocol version * Missing generic parameter for ClientCoreError in BackendError * Removed unused imports * Additional wasm feature locking Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com> Co-authored-by: Fran Arbanas <arbanasfran@gmail.com> Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com> Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com> Co-authored-by: Bogdan-Ștefan Neacşu <bogdan@nymtech.net> Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com> Co-authored-by: Raphaël Walther <raphael@nymtech.net> Co-authored-by: Fouad <fmtabbara@hotmail.co.uk> Co-authored-by: Gala <calero.vg@gmail.com> Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
204 lines
6.8 KiB
YAML
204 lines
6.8 KiB
YAML
name: Nightly builds on latest release
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '14 2 * * *'
|
|
jobs:
|
|
matrix_prep:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
steps:
|
|
# creates the matrix strategy from nightly_build_matrix_includes.json
|
|
- uses: actions/checkout@v3
|
|
- id: set-matrix
|
|
uses: JoshuaTheMiller/conditional-build-matrix@main
|
|
with:
|
|
inputFile: '.github/workflows/nightly_build_matrix_includes.json'
|
|
filter: '[?runOnEvent==`${{ github.event_name }}` || runOnEvent==`always`]'
|
|
get_release:
|
|
runs-on: ubuntu-latest
|
|
needs: matrix_prep
|
|
outputs:
|
|
output1: ${{ steps.step2.outputs.latest_release }}
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
- name: Fetch all branches
|
|
run: git fetch --all
|
|
- name: Set output variable to latest release branch
|
|
id: step2
|
|
run: echo "latest_release=$(git branch -r | grep -E 'release/v[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1 | sed 's/ origin\///')" >> $GITHUB_OUTPUT
|
|
build:
|
|
needs: [get_release,matrix_prep]
|
|
strategy:
|
|
matrix: ${{fromJson(needs.matrix_prep.outputs.matrix)}}
|
|
runs-on: ${{ matrix.os }}
|
|
continue-on-error: ${{ matrix.rust == 'nightly' || matrix.rust == 'beta' || matrix.rust == 'stable' }}
|
|
steps:
|
|
- name: Install Dependencies (Linux)
|
|
run: sudo apt-get update && sudo apt-get install libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libudev-dev squashfs-tools
|
|
if: matrix.os == 'ubuntu-latest'
|
|
|
|
- name: Check out latest release branch
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: ${{needs.get_release.outputs.output1}}
|
|
|
|
- name: Install rust toolchain
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: ${{ matrix.rust }}
|
|
override: true
|
|
components: rustfmt, clippy
|
|
|
|
- name: Build all binaries
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --workspace
|
|
|
|
- name: Reclaim some disk space (because Windows is being annoying)
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
with:
|
|
command: clean
|
|
|
|
- name: Run all tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --workspace
|
|
|
|
- name: Reclaim some disk space (because Windows is being annoying)
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
with:
|
|
command: clean
|
|
|
|
- name: Run expensive tests
|
|
if: github.ref == 'refs/heads/develop' || github.event.pull_request.base.ref == 'develop' || github.event.pull_request.base.ref == 'master'
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --workspace --all-features -- --ignored
|
|
|
|
- name: Check formatting
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: --all -- --check
|
|
|
|
- name: Reclaim some disk space (because Windows is being annoying)
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
with:
|
|
command: clean
|
|
|
|
- uses: actions-rs/clippy-check@v1
|
|
name: Clippy checks
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
args: --all-features
|
|
|
|
- name: Run clippy
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.rust != 'nightly' }}
|
|
with:
|
|
command: clippy
|
|
args: --workspace --all-targets -- -D warnings
|
|
|
|
- name: Reclaim some disk space
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.os == 'windows-latest' || matrix.os == 'ubuntu-latest' }}
|
|
with:
|
|
command: clean
|
|
|
|
# COCONUT stuff
|
|
- name: Build all binaries with coconut enabled
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --workspace --features=coconut
|
|
|
|
- name: Reclaim some disk space (because Windows is being annoying)
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
with:
|
|
command: clean
|
|
|
|
- name: Run all tests with coconut enabled
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --workspace --features=coconut
|
|
|
|
- name: Reclaim some disk space (because Windows is being annoying)
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
with:
|
|
command: clean
|
|
|
|
- name: Run clippy with coconut enabled
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.rust != 'nightly' }}
|
|
with:
|
|
command: clippy
|
|
args: --workspace --all-targets --features=coconut -- -D warnings
|
|
|
|
# nym-wallet (the rust part)
|
|
- name: Build nym-wallet rust code
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --manifest-path nym-wallet/Cargo.toml --workspace
|
|
|
|
- name: Run nym-wallet tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --manifest-path nym-wallet/Cargo.toml --workspace
|
|
|
|
- name: Check nym-wallet formatting
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: --manifest-path nym-wallet/Cargo.toml --all -- --check
|
|
|
|
- name: Run clippy for nym-wallet
|
|
uses: actions-rs/cargo@v1
|
|
if: ${{ matrix.rust != 'nightly' }}
|
|
with:
|
|
command: clippy
|
|
args: --manifest-path nym-wallet/Cargo.toml --workspace --all-targets -- -D warnings
|
|
|
|
notification:
|
|
needs: [build,get_release]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Collect jobs status
|
|
uses: technote-space/workflow-conclusion-action@v2
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
- name: Keybase - Node Install
|
|
if: env.WORKFLOW_CONCLUSION == 'failure'
|
|
run: npm install
|
|
working-directory: .github/workflows/support-files
|
|
- name: Keybase - Send Notification
|
|
if: env.WORKFLOW_CONCLUSION == 'failure'
|
|
env:
|
|
NYM_NOTIFICATION_KIND: nightly
|
|
NYM_PROJECT_NAME: "Nym nightly build on latest release"
|
|
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}"
|
|
GIT_BRANCH: "https://github.com/nymtech/nym/tree/${{needs.get_release.outputs.output1}}"
|
|
KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}"
|
|
KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}"
|
|
KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}"
|
|
KEYBASE_NYM_CHANNEL: "ci-nightly-release"
|
|
IS_SUCCESS: "${{ env.WORKFLOW_CONCLUSION == 'success' }}"
|
|
uses: docker://keybaseio/client:stable-node
|
|
with:
|
|
args: .github/workflows/support-files/notifications/entry_point.sh
|