Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .circleci/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/configuration-reference
version: 2.1

# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/jobs-steps/#jobs-overview & https://circleci.com/docs/configuration-reference/#jobs
jobs:
say-hello:
# Specify the execution environment. You can specify an image from Docker Hub or use one of our convenience images from CircleCI's Developer Hub.
# See: https://circleci.com/docs/executor-intro/ & https://circleci.com/docs/configuration-reference/#executor-job
docker:
# Specify the version you desire here
# See: https://circleci.com/developer/images/image/cimg/base
- image: cimg/base:current
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

For reproducible builds, it's a best practice to pin the Docker image to a specific version instead of using current. The current tag can change unexpectedly and break your CI pipeline. Since this appears to be a Rust project, you might also consider using a Rust-specific image like cimg/rust:1.75.0 which comes with the toolchain pre-installed.

      - image: cimg/base:2024.01


# Add steps to the job
# See: https://circleci.com/docs/jobs-steps/#steps-overview & https://circleci.com/docs/configuration-reference/#steps
steps:
# Checkout the code as the first step.
- checkout
- run:
name: "Say hello"
command: "echo Hello, World!"

# Orchestrate jobs using workflows
# See: https://circleci.com/docs/workflows/ & https://circleci.com/docs/configuration-reference/#workflows
workflows:
say-hello-workflow: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
jobs:
- say-hello
Comment on lines +7 to +31
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This is a good starting point. As you build out the CI, consider making the following improvements for clarity and completeness:

  • Descriptive Naming: Rename the job say-hello and workflow say-hello-workflow to something more descriptive, like build_and_test and main.
  • Remove Boilerplate: The template comments can be removed to make the configuration cleaner.
  • Add Build Steps: Replace the echo command with actual build, lint, and test commands for your Rust project.

For example, your job could look something like this:

  build_and_test:
    docker:
      - image: cimg/rust:1.75.0
    steps:
      - checkout
      - run:
          name: "Check formatting"
          command: "cargo fmt --all -- --check"
      - run:
          name: "Run Clippy"
          command: "cargo clippy --all-targets -- -D warnings"
      - run:
          name: "Run tests"
          command: "cargo test --all-features"

7 changes: 4 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ jobs:
uses: peaceiris/actions-gh-pages@v3
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: target/doc
force_orphan: true
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: target/doc
force_orphan: true
commit_message: "Deploy documentation [skip ci]"

doctest:
runs-on: ubuntu-latest
Expand Down