diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index a9db157..3496cd4 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -2,86 +2,59 @@ name: CI on: push: - branches: [main, master] + branches: [main] pull_request: - branches: [main, master] + branches: [main] jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Run cargo fmt - uses: actions-rs/cargo@v1 - with: - command: fmt - args: -- --check - - - name: Run cargo clippy - uses: actions-rs/cargo@v1 - with: - command: Clippy - args: -- -D warnings - - - name: Run cargo test - uses: actions-rs/cargo@v1 - with: - command: Test - args: --all -- --nocapture - - - name: Upload coverage - uses: codecov/codecov-action@v3 - with: - files: ./target/debug/coverage.tar.gz - fail_ci_if_error: false - - build: - runs-on: ubuntu-latest - needs: test - steps: - - uses: actions/checkout@v4 - - - name: Setup Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Build release - uses: actions-rs/cargo@v1 - with: - command: Build - args: --release - - - name: Upload binary - uses: actions/upload-artifact@v3 - with: - name: gitignore-gen - path: target/release/gitignore-gen - lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - - name: Setup Rust + - uses: actions/setup-python@v5 + with: + python-version: '3.11' + - name: Set up Rust uses: actions-rs/toolchain@v1 with: toolchain: stable - profile: minimal - override: true - - - name: Check formatting + profile: default + components: rustfmt, clippy + - name: Check Rust formatting run: cargo fmt --check --all + - name: Run Rust clippy + run: cargo clippy --all -- -D warnings - - name: Check clippy - run: cargo clippy --all-targets --all-features -- -D warnings + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: default + components: rustfmt + - name: Build gitignore-gen + run: cargo build --all + - name: Run tests + run: cargo test --all + + release: + needs: [lint, test] + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') + steps: + - uses: actions/checkout@v4 + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: default + - name: Build release + run: cargo build --release --tarball + - name: Create Release + uses: https://gitea.com/actions/release-action@main + with: + files: | + target/release/gitignore-gen