--- # yamllint disable rule:line-length name: Build and test on: # yamllint disable-line rule:truthy pull_request: env: CARGO_TERM_COLOR: always jobs: tests: name: Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Cache Rust toolchain uses: actions/cache@v4 with: path: ~/.rustup key: ${{ runner.os }}-rustup-toolchain-stable-clippy-rustfmt - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: stable components: clippy, rustfmt - name: Show versions run: | rustc --version cargo --version - name: Check formatting uses: actions-rs/cargo@v1 with: command: fmt args: --check - name: Run tests uses: actions-rs/cargo@v1 with: command: test clippy: name: Clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Cache Rust toolchain uses: actions/cache@v4 with: path: ~/.rustup key: ${{ runner.os }}-rustup-toolchain-stable-clippy-rustfmt - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: stable components: clippy, rustfmt - name: Show versions run: | rustc --version cargo --version - name: Clippy check uses: actions-rs/cargo@v1 with: command: clippy args: -- -D warnings build-amd64: name: Build AMD64 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Cache Rust toolchain uses: actions/cache@v4 with: path: ~/.rustup key: ${{ runner.os }}-rustup-toolchain-stable-clippy-rustfmt - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: stable components: clippy, rustfmt - name: Show versions run: | rustc --version cargo --version - name: Build release binary uses: actions-rs/cargo@v1 with: command: build args: --release --all-features - name: Upload binary artifact uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: reddit-magnet-linux-amd64 path: target/release/reddit-magnet rustdoc: name: Generate Documentation runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Cache Rust toolchain uses: actions/cache@v4 with: path: ~/.rustup key: ${{ runner.os }}-rustup-toolchain-stable-clippy-rustfmt - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: stable components: clippy, rustfmt - name: Show versions run: | rustc --version cargo --version - name: Generate documentation uses: actions-rs/cargo@v1 with: command: doc args: --all-features --workspace --no-deps - name: Compress documentation run: tar -czf rustdoc.tar.gz -C target doc - name: Upload documentation artifact uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: rustdoc path: rustdoc.tar.gz ...