diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..0242d29 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,78 @@ +# Copyright (C) 2023 Daniel Mueller +# 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.runs-on }}, ${{ matrix.rust }}, ${{ matrix.profile }}] + strategy: + fail-fast: false + matrix: + runs-on: [ubuntu-latest] + rust: [stable] + profile: [dev, release] + runs-on: ${{ matrix.runs-on }} + steps: + - uses: actions/checkout@v4 + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + profile: minimal + override: true + - name: Build & test ${{ matrix.profile }} + run: | + sudo apt-get install --assume-yes libgpgme-dev + cargo build --profile=${{ matrix.profile }} --all-targets + cargo test --profile=${{ matrix.profile }} + build-minimum: + name: Build using minimum versions of dependencies + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install Nightly Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + - run: cargo +nightly -Z minimal-versions update + - name: Install minimum Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + # Please adjust README and rust-version field in Cargo.toml files when + # bumping version. + toolchain: 1.56.0 + default: true + - name: Build + run: | + sudo apt-get install --assume-yes libgpgme-dev + cargo build --locked + clippy: + name: Lint with clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + components: clippy + override: true + - run: | + sudo apt-get install --assume-yes libgpgme-dev + cargo clippy --no-deps --all-targets --all-features --tests -- -A unknown_lints -A deprecated -D warnings diff --git a/CHANGELOG.md b/CHANGELOG.md index 62efbef..701896e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +Unreleased +---------- +- Switched to using GitHub Actions as CI provider + + 0.1.4 ----- - Switched from using `ssh-agent` to `ssh-agent-lib` diff --git a/Cargo.toml b/Cargo.toml index 6845d13..e1b8fc9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ codegen-units = 1 incremental = false [dependencies.anyhow] -version = "1.0" +version = "1.0.14" [dependencies.dirs] version = "4.0" @@ -65,7 +65,7 @@ default-features = false version = "0.8" [dependencies.log] -version = "0.4" +version = "0.4.8" [dependencies.ssh-agent-lib] version = "0.2.5" diff --git a/README.md b/README.md index ced045f..6e4c87c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![pipeline](https://gitlab.com/d-e-s-o/ssh-gpg-agent/badges/master/pipeline.svg)](https://gitlab.com/d-e-s-o/ssh-gpg-agent/commits/master) +[![pipeline](https://github.com/d-e-s-o/ssh-gpg-agent/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/d-e-s-o/ssh-gpg-agent/actions/workflows/test.yml) [![crates.io](https://img.shields.io/crates/v/ssh-gpg-agent.svg)](https://crates.io/crates/ssh-gpg-agent) [![rustc](https://img.shields.io/badge/rustc-1.56+-blue.svg)](https://blog.rust-lang.org/2021/10/21/Rust-1.56.0.html) [![license](https://img.shields.io/github/license/d-e-s-o/ssh-gpg-agent.svg)](https://github.com/d-e-s-o/ssh-gpg-agent/blob/master/LICENSE) diff --git a/ci/gitlab-ci.yml b/ci/gitlab-ci.yml deleted file mode 100644 index ea11670..0000000 --- a/ci/gitlab-ci.yml +++ /dev/null @@ -1,20 +0,0 @@ -# The documentation for the contents of this file can be found at: -# https://docs.gitlab.com/ce/ci/yaml/README.html - -# Official language image. Look for the different tagged releases at: -# https://hub.docker.com/r/library/rust/tags/ -# The recipe for this docker image can be found at: -# https://github.com/rust-lang/docker-rust/blob/4627bd25407065f8f8feafa11a33c46c51f759d8/1.56.1/buster/Dockerfile -image: "rust:1.56.1" - - -build-test-lint: - script: - - apt-get update - - apt-get install --assume-yes gettext libgpg-error0 - - rustup component add clippy - - rustc --version && cargo --version - - cargo build --bins --verbose - - cargo build --bins --verbose --release - - cargo test --verbose - - cargo clippy --all-targets --all-features -- -A unknown_lints -D warnings