Merge pull request #1 from Frost/ci
Add CI workflow for linting and tests
This commit is contained in:
commit
1971673660
|
|
@ -0,0 +1,46 @@
|
|||
on: push
|
||||
|
||||
name: CI
|
||||
|
||||
jobs:
|
||||
lint_and_test:
|
||||
name: lint and test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: stable
|
||||
override: true
|
||||
components: clippy, rustfmt
|
||||
- uses: actions-rs/clippy-check@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
args: --all-features -- -D warnings
|
||||
- run: cargo check --workspace --all-features
|
||||
- run: cargo test --all-targets
|
||||
- run: cargo fmt --all -- --check
|
||||
|
||||
build_package:
|
||||
needs: lint_and_test
|
||||
if: github.ref == 'refs/heads/main'
|
||||
name: Build package
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: stable
|
||||
override: true
|
||||
- run: cargo build --release
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: git-mob-${{ matrix.os }}
|
||||
path: |
|
||||
target/release/git-*
|
||||
!target/release/*.d
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
language: rust
|
||||
rust:
|
||||
- stable
|
||||
- beta
|
||||
- nightly
|
||||
matrix:
|
||||
allow_failures:
|
||||
- rust: nightly
|
||||
|
|
@ -40,10 +40,10 @@ fn list_coauthors() {
|
|||
}
|
||||
}
|
||||
|
||||
fn override_main_author(initials: &String) {
|
||||
fn override_main_author(initials: &str) {
|
||||
let all_authors = get_available_coauthors();
|
||||
match all_authors.get(initials) {
|
||||
Some(new_main_author) => set_main_author(&new_main_author),
|
||||
Some(new_main_author) => set_main_author(new_main_author),
|
||||
None => {
|
||||
eprintln!("Error: author with initials {} not found", initials);
|
||||
process::exit(1);
|
||||
|
|
@ -52,7 +52,7 @@ fn override_main_author(initials: &String) {
|
|||
}
|
||||
|
||||
fn write_coauthors_to_gitmessage_file(coauthor_initials: &[String]) {
|
||||
let coauthors = select_coauthors(&coauthor_initials);
|
||||
let coauthors = select_coauthors(coauthor_initials);
|
||||
let mut content = String::from("\n\n");
|
||||
for author in &coauthors {
|
||||
content.push_str(&format!("Co-authored-by: {}\n", &author.to_string()));
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ impl fmt::Display for Author {
|
|||
pub fn get_main_author() -> Author {
|
||||
let cfg = match Repository::open_from_env() {
|
||||
Ok(repo) => repo.config().unwrap(),
|
||||
Err(_e) => Config::open_default().unwrap()
|
||||
Err(_e) => Config::open_default().unwrap(),
|
||||
};
|
||||
|
||||
let name = cfg.get_entry("user.name").unwrap();
|
||||
|
|
@ -50,7 +50,7 @@ pub fn ensure_commit_template_is_set() {
|
|||
with_git_repo_or_exit(|repo| {
|
||||
let mut config = repo.config().unwrap();
|
||||
config
|
||||
.set_str("commit.template", &".git/.gitmessage")
|
||||
.set_str("commit.template", ".git/.gitmessage")
|
||||
.unwrap();
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue