Skip to content

Commit

Permalink
Introduce GitHub Action based CI
Browse files Browse the repository at this point in the history
This change adds a configuration file for a GitHub Actions based CI
pipeline to the repository. This file (directly or indirectly) controls
the environment in which to build and test, and is also used for some
additional linting.
With the pipeline in place the change also adds a badge indicating the
status of the build on the project's front page.
  • Loading branch information
d-e-s-o committed Sep 18, 2024
1 parent aaeabf1 commit c3ade3a
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 0 deletions.
54 changes: 54 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Copyright (C) 2024 Daniel Mueller <deso@posteo.net>
# SPDX-License-Identifier: GPL-3.0-or-later

name: Test

on:
pull_request:
push:

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
# Build without debug information enabled to decrease compilation time
# and binary sizes in CI. This option is assumed to only have marginal
# effects on the generated code, likely only in terms of section
# arrangement. See
# https://doc.rust-lang.org/cargo/reference/environment-variables.html
# https://doc.rust-lang.org/rustc/codegen-options/index.html#debuginfo
RUSTFLAGS: '-C debuginfo=0'

jobs:
test:
name: Build and test [${{ matrix.rust }}, ${{ matrix.profile }}]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
rust: [stable]
profile: [dev, release]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Build & test ${{ matrix.profile }}
run: |
cargo build --profile=${{ matrix.profile }} --all-features --bins --tests
cargo test --profile=${{ matrix.profile }} --all-features
clippy:
name: Lint with clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo clippy --no-deps --all-targets --all-features --tests -- -A unknown_lints -A deprecated -D warnings
rustfmt:
name: Check code formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo +nightly fmt -- --check
9 changes: 9 additions & 0 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copyright (C) 2024 Daniel Mueller <deso@posteo.net>
# SPDX-License-Identifier: CC0-1.0

blank_lines_lower_bound = 0
blank_lines_upper_bound = 2
edition = "2021"
match_block_trailing_comma = true
tab_spaces = 2
trailing_semicolon = false
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Unreleased
----------
- Removed unused `once_cell` and `regex` dependencies
- Added GitHub Actions based CI workflow


0.1.1
-----
- Factored out diff parsing functionality into `diff-parse` crate
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[![pipeline](https://github.com/d-e-s-o/git-blamediff/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/d-e-s-o/git-blamediff/actions/workflows/test.yml)
[![crates.io](https://img.shields.io/crates/v/git-blamediff.svg)](https://crates.io/crates/git-blamediff)

git-blamediff
=============

Expand Down

0 comments on commit c3ade3a

Please sign in to comment.