diff --git a/.gitea/workflows/build-and-test.yml b/.gitea/workflows/build-and-test.yml index 873fc10..090445a 100644 --- a/.gitea/workflows/build-and-test.yml +++ b/.gitea/workflows/build-and-test.yml @@ -6,7 +6,113 @@ on: pull_request: jobs: - build: + # build: + # runs-on: ubuntu-latest-personal + # steps: + # - uses: actions/checkout@v3 + + # - name: Install latest nightly toolchain + # uses: actions-rs/toolchain@v1 + # with: + # toolchain: nightly + # override: true + + # - name: Cache dependencies + # uses: Swatinem/rust-cache@v2 + + # - name: Build + # run: cargo build --all-features --verbose --release + + # check: + # runs-on: ubuntu-latest-personal + # steps: + # - uses: actions/checkout@v3 + + # - name: Install latest nightly toolchain + # uses: actions-rs/toolchain@v1 + # with: + # toolchain: nightly + # override: true + # components: rustfmt, clippy + + # - name: Cache dependencies + # uses: Swatinem/rust-cache@v2 + + # - name: Check code format + # run: cargo fmt -- --check + + # - name: Check clippy + # run: cargo clippy --all-features -- --deny warnings + + # test: + # runs-on: ubuntu-latest-personal + # steps: + # - uses: actions/checkout@v3 + # - uses: cargo-bins/cargo-binstall@main + + # - name: Install mpv + # run: apt-get update && apt-get install -y mpv + + # - name: Install latest nightly toolchain + # uses: actions-rs/toolchain@v1 + # with: + # toolchain: nightly + # override: true + # components: llvm-tools-preview + + # - name: Cache dependencies + # uses: Swatinem/rust-cache@v2 + + # - name: Create necessary directories + # run: mkdir -p target/test-report + + # - name: Run tests + # run: | + # cargo test --all-features --release --no-fail-fast -- -Zunstable-options --format json --report-time \ + # | tee target/test-report/test-report.json + # env: + # RUSTFLAGS: "-Cinstrument-coverage" + # LLVM_PROFILE_FILE: "target/coverage/%p-%m.profraw" + + # - name: Install markdown-test-report + # run: cargo binstall -y markdown-test-report + + # - name: Generate test report + # run: markdown-test-report target/test-report/test-report.json --output target/test-report/test-report.md + + # - name: Upload test report + # uses: actions/upload-artifact@v3 + # with: + # name: test-report.md + # path: target/test-report/test-report.md + + # - name: Install grcov + # run: cargo binstall -y grcov + + # - name: Generate coverage report + # run: | + # grcov \ + # --source-dir . \ + # --binary-path ./target/release/deps/ \ + # --excl-start 'mod test* \{' \ + # --ignore 'tests/*' \ + # --ignore "*test.rs" \ + # --ignore "*tests.rs" \ + # --ignore "*github.com*" \ + # --ignore "*libcore*" \ + # --ignore "*rustc*" \ + # --ignore "*liballoc*" \ + # --ignore "*cargo*" \ + # -t html \ + # -o ./target/coverage/html \ + # target/coverage/ + + # - name: Upload coverage report + # uses: actions/upload-artifact@v3 + # with: + # name: coverage + # path: target/coverage/html + docs: runs-on: ubuntu-latest-personal steps: - uses: actions/checkout@v3 @@ -16,95 +122,15 @@ jobs: with: toolchain: nightly override: true - components: rustfmt, clippy - name: Cache dependencies uses: Swatinem/rust-cache@v2 - - name: Build - run: cargo build --all-features --verbose --release + - name: Build docs + run: cargo doc --all-features --document-private-items --release - check: - runs-on: ubuntu-latest-personal - steps: - - uses: actions/checkout@v3 - - - name: Install latest nightly toolchain - uses: actions-rs/toolchain@v1 + - name: Upload docs + uses: actions/upload-artifact@v3 with: - toolchain: nightly - override: true - components: rustfmt, clippy - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - - - name: Check code format - run: cargo fmt -- --check - - - name: Check clippy - run: cargo clippy --all-features -- --deny warnings - - test: - runs-on: ubuntu-latest-personal - steps: - - uses: actions/checkout@v3 - - uses: cargo-bins/cargo-binstall@main - - - name: Install latest nightly toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - override: true - components: rustfmt, clippy, llvm-tools-preview - - - name: Cache dependencies - uses: Swatinem/rust-cache@v2 - - - name: Create necessary directories - run: mkdir -p target/test-report - - - name: Run tests - run: cargo test --all-features --release -Z unstable-options --report-time --format json | tee target/test-report/test-report.json - env: - RUSTFLAGS: "-Cinstrument-coverage" - LLVM_PROFILE_FILE: "target/release/coverage/%p-%m.profraw" - - - name: Install markdown-test-report - run: cargo binstall -y markdown-test-report - - - name: Generate test report - run: markdown-test-report target/test-report/test-report.json target/test-report/test-report.md - - - name: Upload test report - uses: actions/upload-artifact@v4 - with: - name: test-report - path: target/test-report/test-report.md - - - name: Install grcov - run: cargo binstall -y grcov - - - name: Generate coverage report - run: | - grcov \ - --source-dir . \ - --binary-path ./target/release/deps/ \ - --excl-start 'mod test* \{' \ - --ignore 'tests/*' \ - --ignore "*test.rs" \ - --ignore "*tests.rs" \ - --ignore "*github.com*" \ - --ignore "*libcore*" \ - --ignore "*rustc*" \ - --ignore "*liballoc*" \ - --ignore "*cargo*" \ - -t html \ - -o ./target/coverage/html \ - target/coverage/prof - - - name: Upload coverage report - uses: actions/upload-artifact@v4 - with: - name: coverage - path: target/coverage/html + name: docs + path: target/doc