Skip to content

Commit

Permalink
feat: migrate to gh-workflow-tailcall (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
mehul-m-prajapati authored Dec 15, 2024
1 parent b1d11cb commit 92d4121
Show file tree
Hide file tree
Showing 5 changed files with 151 additions and 57 deletions.
53 changes: 53 additions & 0 deletions .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# -------------------------------------------------------------------
# ------------------------------- WARNING ---------------------------
# -------------------------------------------------------------------
#
# This file was automatically generated by gh-workflows using the
# gh-workflow-gen bin. You should add and commit this file to your
# git repository. **DO NOT EDIT THIS FILE BY HAND!** Any manual changes
# will be lost if the file is regenerated.
#
# To make modifications, update your `build.rs` configuration to adjust
# the workflow description as needed, then regenerate this file to apply
# those changes.
#
# -------------------------------------------------------------------
# ----------------------------- END WARNING -------------------------
# -------------------------------------------------------------------

name: autofix.ci
env:
RUSTFLAGS: -Dwarnings
on:
pull_request:
types:
- opened
- synchronize
- reopened
branches:
- main
push:
branches:
- main
jobs:
lint:
name: Lint Fix
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Rust Toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: clippy, rustfmt
- name: Cargo Fmt
run: cargo +nightly fmt --all
- name: Cargo Clippy
run: cargo +nightly clippy --fix --allow-dirty --all-features --workspace -- -D warnings
- uses: autofix-ci/action@ff86a557419858bb967097bfc916833f5647fa8c
concurrency:
group: autofix-${{github.ref}}
cancel-in-progress: false
72 changes: 67 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# ----------------------------- END WARNING -------------------------
# -------------------------------------------------------------------

name: Build and Test
name: ci
env:
RUSTFLAGS: -Dwarnings
on:
Expand All @@ -33,19 +33,81 @@ jobs:
build:
name: Build and Test
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Rust Toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable, nightly
components: clippy, rustfmt
toolchain: stable
- name: Cargo Test
run: cargo test --all-features --workspace
- name: Cargo Bench
run: cargo bench
run: cargo bench --workspace
lint:
name: Lint
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Rust Toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: clippy, rustfmt
- name: Cargo Fmt
run: cargo +nightly fmt --check
run: cargo +nightly fmt --all --check
- name: Cargo Clippy
run: cargo +nightly clippy --all-features --workspace -- -D warnings
release:
needs:
- build
- lint
if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }}
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
packages: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Release Plz
uses: release-plz/[email protected]
with:
command: release
concurrency:
group: release-${{github.ref}}
cancel-in-progress: false
release-pr:
needs:
- build
- lint
if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }}
name: Release Pr
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
packages: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Release Plz
uses: release-plz/[email protected]
with:
command: release-pr
concurrency:
group: release-${{github.ref}}
cancel-in-progress: false
29 changes: 26 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jaq-std = { workspace = true }
jaq-json = { workspace = true }

[dev-dependencies]
gh-workflow = "0.4.1"
gh-workflow-tailcall = "0.2.0"
pest = "2.7.14"
pest_derive = {version = "2.7.14"}
criterion = "0.5.1"
Expand Down
52 changes: 4 additions & 48 deletions tests/ci.rs
Original file line number Diff line number Diff line change
@@ -1,52 +1,8 @@
use gh_workflow::toolchain::Toolchain;
use gh_workflow::*;
use gh_workflow_tailcall::*;

#[test]
fn generate() {
let flags = RustFlags::deny("warnings");
fn generate_ci_workflow() {
let workflow = Workflow::default().auto_release(true).benchmarks(true);

let build = Job::new("Build and Test")
.add_step(Step::checkout())
.add_step(
Toolchain::default()
.add_stable()
.add_nightly()
.add_clippy()
.add_fmt(),
)
.add_step(
Cargo::new("test")
.args("--all-features --workspace")
.name("Cargo Test"),
)
.add_step(Cargo::new("bench").name("Cargo Bench"))
.add_step(
Cargo::new("fmt")
.nightly()
.args("--check")
.name("Cargo Fmt"),
)
.add_step(
Cargo::new("clippy")
.nightly()
.args("--all-features --workspace -- -D warnings")
.name("Cargo Clippy"),
);

let event = Event::default()
.push(Push::default().add_branch("main"))
.pull_request(
PullRequest::default()
.add_type(PullRequestType::Opened)
.add_type(PullRequestType::Synchronize)
.add_type(PullRequestType::Reopened)
.add_branch("main"),
);

Workflow::new("Build and Test")
.add_env(flags)
.on(event)
.add_job("build", build)
.generate()
.unwrap();
workflow.generate().unwrap();
}

0 comments on commit 92d4121

Please sign in to comment.