Skip to content

Commit

Permalink
feat: migrate to gh-workflow-tailcall
Browse files Browse the repository at this point in the history
  • Loading branch information
mehul-m-prajapati committed Dec 5, 2024
1 parent aca4e85 commit 476819a
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 69 deletions.
35 changes: 32 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ name: Build and Test
env:
RUSTFLAGS: -Dwarnings
on:
pull_request_target:
pull_request:
types:
- opened
- synchronize
Expand All @@ -33,6 +33,8 @@ jobs:
build:
name: Build and Test
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v4
Expand All @@ -48,7 +50,9 @@ jobs:
- name: Cargo Clippy
run: cargo +nightly clippy --all-features --workspace -- -D warnings
release:
needs: build
needs:
- build
if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }}
name: Release
runs-on: ubuntu-latest
permissions:
Expand All @@ -62,4 +66,29 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v4
- name: Release Plz
uses: MarcoIeni/[email protected]
uses: release-plz/[email protected]
with:
command: release
release-pr:
needs:
- build
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
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ wasm-bindgen = "0.2.92"
[dev-dependencies]
pretty_assertions = "1.4.1"
stripmargin = "0.1.1"
gh-workflow = { version = "0" }
gh-workflow-tailcall = "0.1.3"

[features]
default = []
Expand Down
71 changes: 6 additions & 65 deletions tests/ci.rs
Original file line number Diff line number Diff line change
@@ -1,69 +1,10 @@
use gh_workflow::*;
use release_plz::Release;
use toolchain::Toolchain;
use gh_workflow_tailcall::*;

#[test]
fn ci() {
let flags = RustFlags::deny("warnings");
fn generate_ci_workflow() {
let workflow = Workflow::default()
.auto_release(true)
.name("Build and Test".into());

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("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_target(
PullRequestTarget::default()
.add_type(PullRequestType::Opened)
.add_type(PullRequestType::Synchronize)
.add_type(PullRequestType::Reopened)
.add_branch("main"),
);

let permissions = Permissions::default()
.pull_requests(Level::Write)
.packages(Level::Write)
.contents(Level::Write);

let release = Job::new("Release")
.needs("build")
.add_env(Env::github())
.add_env(Env::new(
"CARGO_REGISTRY_TOKEN",
"${{ secrets.CARGO_REGISTRY_TOKEN }}",
))
.permissions(permissions)
.add_step(Step::checkout())
.add_step(Release::default());

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

0 comments on commit 476819a

Please sign in to comment.