From 476819a5cbdd3f8694af1e845d582aca15c68a3e Mon Sep 17 00:00:00 2001 From: Mehul Date: Tue, 3 Dec 2024 22:19:01 -0500 Subject: [PATCH] feat: migrate to gh-workflow-tailcall --- .github/workflows/ci.yml | 35 ++++++++++++++++++-- Cargo.toml | 2 +- tests/ci.rs | 71 ++++------------------------------------ 3 files changed, 39 insertions(+), 69 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67910a6..3464d56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ name: Build and Test env: RUSTFLAGS: -Dwarnings on: - pull_request_target: + pull_request: types: - opened - synchronize @@ -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 @@ -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: @@ -62,4 +66,29 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 - name: Release Plz - uses: MarcoIeni/release-plz-action@v0.5 + uses: release-plz/action@v0.5 + 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/action@v0.5 + with: + command: release-pr + concurrency: + group: release-${{github.ref}} + cancel-in-progress: false diff --git a/Cargo.toml b/Cargo.toml index 1630e0e..9992b89 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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 = [] diff --git a/tests/ci.rs b/tests/ci.rs index 5872191..1141095 100644 --- a/tests/ci.rs +++ b/tests/ci.rs @@ -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(); }