name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Set up Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: default components: rustfmt, clippy - name: Check Rust formatting run: cargo fmt --check --all - name: Run Rust clippy run: cargo clippy --all -- -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