Skip to content
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

ci: add github workflows #271

Open
wants to merge 64 commits into
base: master
Choose a base branch
from
Open

ci: add github workflows #271

wants to merge 64 commits into from

Conversation

joshka
Copy link
Contributor

@joshka joshka commented May 16, 2023

This PR adds Github CI workflows to replace appveyor.

@jonhoo's ci conf repo has
a reasonable stub of CI workflows and configuration
for rust crates. It includes config for dependabot, codecov.io, and
workflows for checking format and clippy, testing on multiple OSes,
determining the minimum supported rust version, checking for problems
with minimal versions, and runs scheduled tasks to ensure that new rust
versions and dependencies do not break this crate.

This is a merge using the --allow-unrelated-histories flag, that brings
in the entire history of that repo. This enables the CI to be later
merged if configuration changes are made upstream.

I've got a PR out against the upstream repo that adds a bit more documentation
about each workflow
jonhoo/rust-ci-conf#10

Review Approach

When reviewing this change, there's two parts to consider - the history pulled in from the upstream repo which should probably not be squashed (and which contains the bulk of the implementation.

And then the changes specifically for strum which probably can be squashed into a single commit (though I have not yet done so as the commit history is relevant to understanding why specific choices were made in configuring CI

Concerns:

  • 1.32.0 doesn't seem to build on MacOS right now.
  • There is a fix for building no-std correctly (building strum_nostd_tests and strum together adds the std feature, for some strange reason without the change)
  • The appveyor config is a lot more granular around the build targets - I wasn't sure if this was necessary or whether the OS toolchain based approach was sufficient. Happy to fix this if needed.

Testing

I ran this pull request in my own fork at https://github.com/joshka/strum/pull/1/commits with success (except for the 1.32.0 issue on Macs)

jonhoo and others added 29 commits September 17, 2022 18:16
This should make it possible to have rust-ci-conf as a remote you merge
from.
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2 to 3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@v2...v3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…odecov-action-3

Bump codecov/codecov-action from 2 to 3
Given that that project is unmaintained.

actions-rs/toolchain#216
`cargo test --all-features` does not run doc-tests. For more information
see rust-lang/cargo#6669.
This repo contains a reasonable stub of CI workflows and configuration
for rust crates. It includes config for dependabot, codecov.io, and
workflows for checking format and clippy, testing on multiple OSes,
determining the minimum supported rust version, checking for problems
with minimal versions, and runs scheduled tasks to ensure that new rust
versions and dependencies do not break this crate.

This is a merge using the --allow-unrelated-histories flag, that brings
in the entire history of that repo. This enables the CI to be later
merged if configuration changes are made upstream.
test_phf feature is incompatible with 1.32 as siphasher crate does not build
We do not have unsafe code in strum, so this is not necessary
no-std checks fail to build textwrap, which is a required dependency of structopts
Before this change, attempting to build strum_no_std would include std in the default features of strum, which would prevent it building
@joshka joshka changed the title ci: merge https://github.com/jonhoo/rust-ci-conf/ ci: add github workflows May 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants