GHA Workflows updated

This commit is contained in:
Alexey
2026-09-06 20:08:01 +03:00
parent f857aefd06
commit 3693d1e2a8
6 changed files with 74 additions and 51 deletions
+3 -3
View File
@@ -19,13 +19,13 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v7.0.1
- name: Install latest stable Rust toolchain - name: Install latest stable Rust toolchain
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry & build artifacts - name: Cache cargo registry & build artifacts
uses: actions/cache@v4 uses: actions/cache@v6.1.0
with: with:
path: | path: |
~/.cargo/registry ~/.cargo/registry
@@ -39,7 +39,7 @@ jobs:
run: cargo build --release --verbose run: cargo build --release --verbose
- name: Upload binary artifact - name: Upload binary artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7.0.1
with: with:
name: telemt name: telemt
path: target/release/telemt path: target/release/telemt
+40 -24
View File
@@ -14,9 +14,7 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
# ========================== # Rust formatting validation
# Formatting
# ==========================
fmt: fmt:
name: Fmt name: Fmt
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -25,7 +23,7 @@ jobs:
contents: read contents: read
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
with: with:
@@ -33,9 +31,23 @@ jobs:
- run: cargo fmt -- --check - run: cargo fmt -- --check
# ========================== # Minimum supported Rust version validation
# Tests msrv:
# ========================== name: MSRV
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@1.88.0
- name: Check all targets on MSRV
run: cargo check --all-targets --locked
# Rust test suite
test: test:
name: Test name: Test
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -46,32 +58,34 @@ jobs:
checks: write checks: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
- name: Cache cargo - name: Cache cargo
uses: actions/cache@v4 uses: actions/cache@v6.1.0
with: with:
path: | path: |
~/.cargo/bin ~/.cargo/bin
~/.cargo/registry ~/.cargo/registry
~/.cargo/git ~/.cargo/git
target target
key: ${{ runner.os }}-cargo-nextest-${{ hashFiles('**/Cargo.lock') }} key: ${{ runner.os }}-cargo-nextest-0.9.143-${{ hashFiles('**/Cargo.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-cargo-nextest-0.9.143-
${{ runner.os }}-cargo-nextest- ${{ runner.os }}-cargo-nextest-
${{ runner.os }}-cargo- ${{ runner.os }}-cargo-
- name: Install cargo-nextest - name: Install cargo-nextest
run: cargo install --locked cargo-nextest || true run: |
if ! cargo-nextest --version 2>/dev/null | grep -Fq "cargo-nextest 0.9.143"; then
cargo install --locked --version 0.9.143 --force cargo-nextest
fi
- name: Run tests with nextest - name: Run tests with nextest
run: cargo nextest run -j "$(nproc)" run: cargo nextest run -j "$(nproc)"
# ========================== # Rust lint validation
# Clippy
# ==========================
clippy: clippy:
name: Clippy name: Clippy
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -81,14 +95,14 @@ jobs:
checks: write checks: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
with: with:
components: clippy components: clippy
- name: Cache cargo - name: Cache cargo
uses: actions/cache@v4 uses: actions/cache@v6.1.0
with: with:
path: | path: |
~/.cargo/registry ~/.cargo/registry
@@ -102,9 +116,7 @@ jobs:
- name: Run clippy - name: Run clippy
run: cargo clippy -j "$(nproc)" -- --cap-lints warn run: cargo clippy -j "$(nproc)" -- --cap-lints warn
# ========================== # Unused dependency validation
# Udeps
# ==========================
udeps: udeps:
name: Udeps name: Udeps
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -113,27 +125,31 @@ jobs:
contents: read contents: read
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@nightly
with: with:
components: rust-src components: rust-src
- name: Cache cargo - name: Cache cargo
uses: actions/cache@v4 uses: actions/cache@v6.1.0
with: with:
path: | path: |
~/.cargo/bin ~/.cargo/bin
~/.cargo/registry ~/.cargo/registry
~/.cargo/git ~/.cargo/git
target target
key: ${{ runner.os }}-cargo-udeps-${{ hashFiles('**/Cargo.lock') }} key: ${{ runner.os }}-cargo-udeps-0.1.61-${{ hashFiles('**/Cargo.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-cargo-udeps-0.1.61-
${{ runner.os }}-cargo-udeps- ${{ runner.os }}-cargo-udeps-
${{ runner.os }}-cargo- ${{ runner.os }}-cargo-
- name: Install cargo-udeps - name: Install cargo-udeps
run: cargo install --locked cargo-udeps || true run: |
if ! cargo-udeps --version 2>/dev/null | grep -Fq "cargo-udeps 0.1.61"; then
cargo install --locked --version 0.1.61 --force cargo-udeps
fi
- name: Run udeps - name: Run udeps
run: cargo udeps -j "$(nproc)" || true run: cargo udeps -j "$(nproc)" || true
+3 -3
View File
@@ -30,16 +30,16 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v7.0.1
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v4 uses: github/codeql-action/init@v4.37.9
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }} build-mode: ${{ matrix.build-mode }}
config-file: .github/codeql/codeql-config.yml config-file: .github/codeql/codeql-config.yml
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4 uses: github/codeql-action/analyze@v4.37.9
with: with:
category: "/language:${{ matrix.language }}" category: "/language:${{ matrix.language }}"
+9 -5
View File
@@ -17,33 +17,37 @@ jobs:
contents: read contents: read
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
with: with:
components: llvm-tools-preview components: llvm-tools-preview
- name: Cache cargo - name: Cache cargo
uses: actions/cache@v4 uses: actions/cache@v6.1.0
with: with:
path: | path: |
~/.cargo/bin ~/.cargo/bin
~/.cargo/registry ~/.cargo/registry
~/.cargo/git ~/.cargo/git
target target
key: ${{ runner.os }}-cargo-llvm-cov-${{ hashFiles('**/Cargo.lock') }} key: ${{ runner.os }}-cargo-llvm-cov-0.9.0-${{ hashFiles('**/Cargo.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-cargo-llvm-cov-0.9.0-
${{ runner.os }}-cargo-llvm-cov- ${{ runner.os }}-cargo-llvm-cov-
${{ runner.os }}-cargo- ${{ runner.os }}-cargo-
- name: Install cargo-llvm-cov - name: Install cargo-llvm-cov
run: cargo install --locked cargo-llvm-cov || true run: |
if ! cargo-llvm-cov --version 2>/dev/null | grep -Fq "cargo-llvm-cov 0.9.0"; then
cargo install --locked --version 0.9.0 --force cargo-llvm-cov
fi
- name: Generate LCOV report - name: Generate LCOV report
run: cargo llvm-cov --locked --lcov --output-path lcov.info run: cargo llvm-cov --locked --lcov --output-path lcov.info
- name: Upload LCOV report - name: Upload LCOV report
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7.0.1
with: with:
name: telemt-lcov name: telemt-lcov
path: lcov.info path: lcov.info
+15 -15
View File
@@ -88,9 +88,9 @@ jobs:
cpu: generic cpu: generic
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@v1 - uses: dtolnay/rust-toolchain@stable
with: with:
toolchain: stable toolchain: stable
targets: | targets: |
@@ -108,7 +108,7 @@ jobs:
gcc-aarch64-linux-gnu \ gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu g++-aarch64-linux-gnu
- uses: actions/cache@v4 - uses: actions/cache@v6.1.0
with: with:
path: | path: |
/usr/local/cargo/registry /usr/local/cargo/registry
@@ -166,7 +166,7 @@ jobs:
sha256sum "${{ matrix.asset }}.tar.gz" > "${{ matrix.asset }}.tar.gz.sha256" sha256sum "${{ matrix.asset }}.tar.gz" > "${{ matrix.asset }}.tar.gz.sha256"
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7.0.1
with: with:
name: ${{ matrix.asset }} name: ${{ matrix.asset }}
path: dist/* path: dist/*
@@ -199,7 +199,7 @@ jobs:
cpu: generic cpu: generic
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- name: Install deps - name: Install deps
run: | run: |
@@ -209,7 +209,7 @@ jobs:
pkg-config \ pkg-config \
curl curl
- uses: actions/cache@v4 - uses: actions/cache@v6.1.0
if: matrix.target == 'aarch64-unknown-linux-musl' if: matrix.target == 'aarch64-unknown-linux-musl'
with: with:
path: ~/.musl-aarch64 path: ~/.musl-aarch64
@@ -244,7 +244,7 @@ jobs:
- name: Add rust target - name: Add rust target
run: rustup target add ${{ matrix.target }} run: rustup target add ${{ matrix.target }}
- uses: actions/cache@v4 - uses: actions/cache@v6.1.0
with: with:
path: | path: |
/usr/local/cargo/registry /usr/local/cargo/registry
@@ -302,7 +302,7 @@ jobs:
sha256sum "${{ matrix.asset }}.tar.gz" > "${{ matrix.asset }}.tar.gz.sha256" sha256sum "${{ matrix.asset }}.tar.gz" > "${{ matrix.asset }}.tar.gz.sha256"
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v7.0.1
with: with:
name: ${{ matrix.asset }} name: ${{ matrix.asset }}
path: dist/* path: dist/*
@@ -319,7 +319,7 @@ jobs:
contents: write contents: write
steps: steps:
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v8.0.1
with: with:
path: artifacts path: artifacts
@@ -331,7 +331,7 @@ jobs:
find artifacts -type f -exec cp {} dist/ \; find artifacts -type f -exec cp {} dist/ \;
- name: Create GitHub Release - name: Create GitHub Release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v3.0.3
with: with:
tag_name: ${{ needs.prepare.outputs.version }} tag_name: ${{ needs.prepare.outputs.version }}
target_commitish: ${{ github.sha }} target_commitish: ${{ github.sha }}
@@ -353,13 +353,13 @@ jobs:
packages: write packages: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7.0.1
- uses: docker/setup-qemu-action@v3 - uses: docker/setup-qemu-action@v4.3.0
- uses: docker/setup-buildx-action@v3 - uses: docker/setup-buildx-action@v4.3.0
- uses: docker/login-action@v3 - uses: docker/login-action@v4.6.0
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
@@ -407,7 +407,7 @@ jobs:
} >> "${GITHUB_OUTPUT}" } >> "${GITHUB_OUTPUT}"
- name: Build & Push - name: Build & Push
uses: docker/build-push-action@v6 uses: docker/build-push-action@v7.3.0
with: with:
context: . context: .
push: true push: true
+3
View File
@@ -91,6 +91,9 @@ fn rendered_page_embeds_the_configured_bridge_timing_policy() {
page.body page.body
.contains("helloTimer=setTimeout(()=>fail('timeout'),bridgeRequestMs)") .contains("helloTimer=setTimeout(()=>fail('timeout'),bridgeRequestMs)")
); );
assert!(page.body.contains(
"if(!createStarted){createStarted=true;if(helloTimer)clearTimeout(helloTimer);helloTimer=null;helloFrame=message.data"
));
} }
#[test] #[test]