name: CI on: push: branches: [ main, master ] pull_request: branches: [ main, master ] permissions: contents: read jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - name: Check formatting run: cargo fmt --check - name: Run clippy run: cargo clippy --all-features -- -D warnings test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Rust uses: dtolnay/rust-toolchain@stable - name: Build and test run: cargo test --all-features release: runs-on: ubuntu-latest needs: [lint, test] if: startsWith(gitea.ref, 'refs/tags/') permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Rust uses: dtolnay/rust-toolchain@stable with: components: rust-src - name: Build release run: cargo build --release --all-features - name: Create Release uses: https://gitea.com/actions/release-action@main with: files: | target/release/dotmigrate