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