-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
extend ci #10
Merged
Merged
extend ci #10
Changes from 3 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
24693e7
ci: copy from jonhoo/rust-ci-conf
kod-kristoff d40771b
Merge remote-tracking branch 'ci/main' into extend-ci
kod-kristoff ee81098
ci: remove nostd safety
kod-kristoff 6ae4bb4
ci: rm ci workflow
kod-kristoff 315f25e
ci: add correct path
kod-kristoff ca23d03
fix: code for axum 0.7
kod-kristoff 45867a5
fix: use try_days
kod-kristoff 41e94c8
chore: set MSRV to 1.74
kod-kristoff 38b2202
chore(deps): require tokio 1.25
kod-kristoff 7dcb337
stlye: after fmt
kod-kristoff bdb44b9
chore(deps): bump chrono
kod-kristoff File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Github config and workflows | ||
|
||
Copied from <https://github.com/jonhoo/rust-ci-conf/>. | ||
|
||
In this folder there is configuration for codecoverage, dependabot, and ci | ||
workflows that check the library more deeply than the default configurations. | ||
|
||
This folder can be or was merged using a --allow-unrelated-histories merge | ||
strategy from <https://github.com/kod-kristoff/rust-ci-conf/> which provides a | ||
reasonably sensible base for writing your own ci on. By using this strategy | ||
the history of the CI repo is included in your repo, and future updates to | ||
the CI can be merged later. | ||
|
||
To perform this merge run: | ||
|
||
```shell | ||
git remote add ci https://github.com/kod-kristoff/rust-ci-conf.git | ||
git fetch ci | ||
git merge --allow-unrelated-histories ci/main | ||
``` | ||
|
||
or | ||
|
||
```shell | ||
git remote add ci [email protected]:kod-kristoff/rust-ci-conf.git | ||
git fetch ci | ||
git merge --allow-unrelated-histories ci/main | ||
``` | ||
|
||
An overview of the files in this project is available at: | ||
<https://www.youtube.com/watch?v=xUH-4y92jPg&t=491s>, which contains some | ||
rationale for decisions and runs through an example of solving minimal version | ||
and OpenSSL issues. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# ref: https://docs.codecov.com/docs/codecovyml-reference | ||
coverage: | ||
# Hold ourselves to a high bar | ||
range: 85..100 | ||
round: down | ||
precision: 1 | ||
status: | ||
# ref: https://docs.codecov.com/docs/commit-status | ||
project: | ||
default: | ||
# Avoid false negatives | ||
threshold: 1% | ||
|
||
# Test files aren't important for coverage | ||
ignore: | ||
- "tests" | ||
|
||
# Make comments less noisy | ||
comment: | ||
layout: "files" | ||
require_changes: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: github-actions | ||
directory: / | ||
schedule: | ||
interval: daily | ||
- package-ecosystem: cargo | ||
directory: / | ||
schedule: | ||
interval: daily | ||
ignore: | ||
- dependency-name: "*" | ||
# patch and minor updates don't matter for libraries as consumers of this library build | ||
# with their own lockfile, rather than the version specified in this library's lockfile | ||
# remove this ignore rule if your package has binaries to ensure that the binaries are | ||
# built with the exact set of dependencies and those are up to date. | ||
update-types: | ||
- "version-update:semver-patch" | ||
- "version-update:semver-minor" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
# This workflow runs whenever a PR is opened or updated, or a commit is pushed to main. It runs | ||
# several checks: | ||
# - fmt: checks that the code is formatted according to rustfmt | ||
# - clippy: checks that the code does not contain any clippy warnings | ||
# - doc: checks that the code can be documented without errors | ||
# - hack: check combinations of feature flags | ||
# - msrv: check that the msrv specified in the crate is correct | ||
permissions: | ||
contents: read | ||
# This configuration allows maintainers of this repo to create a branch and pull request based on | ||
# the new branch. Restricting the push trigger to the main branch ensures that the PR only gets | ||
# built once. | ||
on: | ||
push: | ||
branches: [main] | ||
pull_request: | ||
merge_group: | ||
# If new code is pushed to a PR branch, then cancel in progress workflows for that PR. Ensures that | ||
# we don't waste CI time, and returns results quicker https://github.com/jonhoo/rust-ci-conf/pull/5 | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||
cancel-in-progress: true | ||
name: check | ||
jobs: | ||
fmt: | ||
runs-on: ubuntu-latest | ||
name: stable / fmt | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install stable | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
components: rustfmt | ||
- name: cargo fmt --check | ||
run: cargo fmt --check | ||
clippy: | ||
runs-on: ubuntu-latest | ||
name: ${{ matrix.toolchain }} / clippy | ||
permissions: | ||
contents: read | ||
checks: write | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
# Get early warning of new lints which are regularly introduced in beta channels. | ||
toolchain: [stable, beta] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install ${{ matrix.toolchain }} | ||
uses: dtolnay/rust-toolchain@master | ||
with: | ||
toolchain: ${{ matrix.toolchain }} | ||
components: clippy | ||
- name: cargo clippy | ||
uses: giraffate/clippy-action@v1 | ||
with: | ||
reporter: 'github-pr-check' | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
doc: | ||
# run docs generation on nightly rather than stable. This enables features like | ||
# https://doc.rust-lang.org/beta/unstable-book/language-features/doc-cfg.html which allows an | ||
# API be documented as only available in some specific platforms. | ||
runs-on: ubuntu-latest | ||
name: nightly / doc | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install nightly | ||
uses: dtolnay/rust-toolchain@nightly | ||
- name: cargo doc | ||
run: cargo doc --no-deps --all-features | ||
env: | ||
RUSTDOCFLAGS: --cfg docsrs | ||
hack: | ||
# cargo-hack checks combinations of feature flags to ensure that features are all additive | ||
# which is required for feature unification | ||
runs-on: ubuntu-latest | ||
name: ubuntu / stable / features | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install stable | ||
uses: dtolnay/rust-toolchain@stable | ||
- name: cargo install cargo-hack | ||
uses: taiki-e/install-action@cargo-hack | ||
# intentionally no target specifier; see https://github.com/jonhoo/rust-ci-conf/pull/4 | ||
# --feature-powerset runs for every combination of features | ||
- name: cargo hack | ||
run: cargo hack --feature-powerset check | ||
msrv: | ||
# check that we can build using the minimal rust version that is specified by this crate | ||
runs-on: ubuntu-latest | ||
# we use a matrix here just because env can't be used in job names | ||
# https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability | ||
strategy: | ||
matrix: | ||
msrv: ["1.56.1"] # 2021 edition requires 1.56 | ||
name: ubuntu / ${{ matrix.msrv }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install ${{ matrix.msrv }} | ||
uses: dtolnay/rust-toolchain@master | ||
with: | ||
toolchain: ${{ matrix.msrv }} | ||
- name: cargo +${{ matrix.msrv }} check | ||
run: cargo check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Run scheduled (rolling) jobs on a nightly basis, as your crate may break independently of any | ||
# given PR. E.g., updates to rust nightly and updates to this crates dependencies. See check.yml for | ||
# information about how the concurrency cancellation and workflow triggering works | ||
permissions: | ||
contents: read | ||
on: | ||
push: | ||
branches: [main] | ||
pull_request: | ||
schedule: | ||
- cron: '7 7 * * *' | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||
cancel-in-progress: true | ||
name: rolling | ||
jobs: | ||
# https://twitter.com/mycoliza/status/1571295690063753218 | ||
nightly: | ||
runs-on: ubuntu-latest | ||
name: ubuntu / nightly | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install nightly | ||
uses: dtolnay/rust-toolchain@nightly | ||
- name: cargo generate-lockfile | ||
if: hashFiles('Cargo.lock') == '' | ||
run: cargo generate-lockfile | ||
- name: cargo test --locked | ||
run: cargo test --locked --all-features --all-targets | ||
# https://twitter.com/alcuadrado/status/1571291687837732873 | ||
update: | ||
# This action checks that updating the dependencies of this crate to the latest available that | ||
# satisfy the versions in Cargo.toml does not break this crate. This is important as consumers | ||
# of this crate will generally use the latest available crates. This is subject to the standard | ||
# Cargo semver rules (i.e cargo does not update to a new major version unless explicitly told | ||
# to). | ||
runs-on: ubuntu-latest | ||
name: ubuntu / beta / updated | ||
# There's no point running this if no Cargo.lock was checked in in the first place, since we'd | ||
# just redo what happened in the regular test job. Unfortunately, hashFiles only works in if on | ||
# steps, so we repeat it. | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- name: Install beta | ||
if: hashFiles('Cargo.lock') != '' | ||
uses: dtolnay/rust-toolchain@beta | ||
- name: cargo update | ||
if: hashFiles('Cargo.lock') != '' | ||
run: cargo update | ||
- name: cargo test | ||
if: hashFiles('Cargo.lock') != '' | ||
run: cargo test --locked --all-features --all-targets | ||
env: | ||
RUSTFLAGS: -D deprecated | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion (code_refinement): Consider the implications of treating deprecation warnings as errors in CI.
Using
-D deprecated
treats all deprecation warnings as errors, which can be beneficial for keeping the codebase modern and clean. However, it might also introduce friction when dependencies deprecate features. Ensure this aligns with your development workflow and dependency update strategy.