Random patches #2943
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
merge_group: | |
push: | |
branches: | |
- "staging" | |
- "main" | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_TERM_COLOR: always | |
FLUTTER_VERSION: "3.10.5" | |
jobs: | |
formatting-dprint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- uses: dprint/check@v2.1 | |
lint-commits: | |
runs-on: ubuntu-latest | |
if: github.event.ref != 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Get all commits on current main | |
run: git fetch origin main | |
- name: Log all commits we will analyze | |
run: git log --pretty=format:%s origin/main..HEAD | |
- name: Disallow fixup! commits | |
run: git log --pretty=format:%s origin/main..HEAD | grep -zv fixup! | |
- name: Disallow squash! commits | |
run: git log --pretty=format:%s origin/main..HEAD | grep -zv squash! | |
clippy: | |
runs-on: ubuntu-latest | |
needs: formatting-dprint | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: extractions/setup-just@v1 | |
- name: Setup rust toolchain | |
run: rustup show | |
- uses: Swatinem/rust-cache@v2.2.0 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
cache: true | |
cache-key: flutter-${{ env.FLUTTER_VERSION }} | |
cache-path: ${{ runner.tool_cache }}/flutter | |
- name: Install FFI bindings | |
run: just deps-gen | |
- name: Generate FFI bindings | |
run: just gen | |
- run: cargo clippy --all-targets --all-features -- -D warnings | |
flutter-format-and-lint: | |
runs-on: ubuntu-latest | |
name: "Format and lint Flutter code" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: extractions/setup-just@v1 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
cache: true | |
cache-key: flutter-${{ env.FLUTTER_VERSION }} | |
cache-path: ${{ runner.tool_cache }}/flutter | |
- name: Setup rust toolchain | |
run: rustup show | |
- name: Install FFI bindings | |
run: just deps-gen | |
- name: Generate FFI bindings | |
run: just gen | |
- name: Verify flutter formatting | |
# Mocks are actually ignored by the linter because they include `// ignore_for_file: type=lint`, but `dart format` reports changes on them nonetheless. | |
# The solution using a `find` command is from here: https://github.com/dart-lang/dart_style/issues/864 | |
run: dart format --output=none --set-exit-if-changed --line-length 100 $(find . -name "*.dart" -not \( -name "*.*freezed.dart" -o -name "*.mocks.dart" \) ) | |
- name: Analyze flutter code | |
run: just lint-flutter | |
unit-tests: | |
runs-on: ubuntu-latest | |
needs: clippy | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: extractions/setup-just@v1 | |
- name: Setup rust toolchain | |
run: rustup show | |
- uses: Swatinem/rust-cache@v2.2.0 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
cache: true | |
cache-key: flutter-${{ env.FLUTTER_VERSION }} | |
cache-path: ${{ runner.tool_cache }}/flutter | |
- name: Install FFI bindings | |
run: just deps-gen | |
- name: Generate FFI bindings | |
run: just gen | |
- name: Running cargo tests | |
run: RUST_BACKTRACE=1 cargo test | |
- name: Running flutter tests | |
run: just flutter-test | |
ln-dlc-node-tests: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: extractions/setup-just@v1 | |
- name: Setup rust toolchain | |
run: rustup show | |
- uses: Swatinem/rust-cache@v2.2.0 | |
- name: Start containers | |
run: | | |
docker-compose up -d | |
sleep 10 # We need to give docker a bit of time to startup | |
- name: Test containers are up | |
run: | | |
curl -d '{"address":"bcrt1qylgu6ffkp3p0m8tw8kp4tt2dmdh755f4r5dq7s", "amount":"0.1"}' -H "Content-Type: application/json" -X POST http://localhost:3000/faucet | |
- name: Run slow tests | |
run: RUST_BACKTRACE=1 cargo test -p ln-dlc-node -- --ignored --nocapture --test-threads=1 | |
e2e-tests: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
# this might remove tools that are actually needed, | |
# when set to "true" but frees about 6 GB | |
tool-cache: false | |
large-packages: false | |
- uses: actions/checkout@v3 | |
- uses: extractions/setup-just@v1 | |
- name: Setup rust toolchain | |
run: rustup show | |
- uses: Swatinem/rust-cache@v2.2.0 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
cache: true | |
cache-key: flutter-${{ env.FLUTTER_VERSION }} | |
cache-path: ${{ runner.tool_cache }}/flutter | |
architecture: x64 | |
- name: Install FFI bindings | |
run: just deps-gen | |
- name: Generate FFI bindings | |
run: just gen | |
- name: Build Rust project | |
run: cargo build --examples | |
- name: Start containers | |
run: | | |
docker-compose up -d | |
sleep 10 # We need to give docker a bit of time to startup | |
- name: show disk space before tests | |
run: df -h | |
- name: Test containers are up | |
run: | | |
curl -d '{"address":"bcrt1qylgu6ffkp3p0m8tw8kp4tt2dmdh755f4r5dq7s", "amount":"0.1"}' -H "Content-Type: application/json" -X POST http://localhost:3000/faucet | |
- name: Run e2e tests | |
run: just e2e --nocapture | |
- name: show disk space after tests | |
if: always() | |
run: df -h |