From 89ffcf09234e278dbb7c73c4e8f0dd02186a0b43 Mon Sep 17 00:00:00 2001 From: Valerio Ageno Date: Sat, 25 May 2024 11:29:11 +0200 Subject: [PATCH] CD: prepare for tuono crate release --- .github/workflows/release-on-npm.yml | 36 ------- .github/workflows/release.yml | 99 +++++++++++++++++++ Cargo.toml | 5 +- crates/axum_bundler/Cargo.toml | 13 --- crates/axum_bundler/README.md | 1 - crates/axum_bundler/src/lib.rs | 2 - crates/bundler/README.md | 1 - crates/bundler/src/lib.rs | 2 - crates/cli/Cargo.toml | 15 --- crates/cli/src/actions/build.rs | 11 --- crates/cli/src/actions/dev.rs | 4 - crates/cli/src/actions/mod.rs | 3 - crates/cli/src/actions/new.rs | 3 - crates/{bundler => tuono}/Cargo.toml | 7 +- crates/{cli => tuono}/README.md | 0 .../src/axum_source_builder.rs} | 0 crates/{cli => tuono}/src/lib.rs | 19 +++- crates/{cli => tuono}/src/main.rs | 0 .../src/bundler.rs => tuono/src/watch.rs} | 4 +- .../tuono_lib_macros/Cargo.toml | 0 .../tuono_lib_macros/src/handler.rs | 0 .../tuono_lib_macros/src/lib.rs | 0 crates/tuono_lib_macros/README.md | 1 - 23 files changed, 120 insertions(+), 106 deletions(-) delete mode 100644 .github/workflows/release-on-npm.yml create mode 100644 .github/workflows/release.yml delete mode 100644 crates/axum_bundler/Cargo.toml delete mode 100644 crates/axum_bundler/README.md delete mode 100644 crates/axum_bundler/src/lib.rs delete mode 100644 crates/bundler/README.md delete mode 100644 crates/bundler/src/lib.rs delete mode 100644 crates/cli/Cargo.toml delete mode 100644 crates/cli/src/actions/build.rs delete mode 100644 crates/cli/src/actions/dev.rs delete mode 100644 crates/cli/src/actions/mod.rs delete mode 100644 crates/cli/src/actions/new.rs rename crates/{bundler => tuono}/Cargo.toml (74%) rename crates/{cli => tuono}/README.md (100%) rename crates/{axum_bundler/src/bundle.rs => tuono/src/axum_source_builder.rs} (100%) rename crates/{cli => tuono}/src/lib.rs (50%) rename crates/{cli => tuono}/src/main.rs (100%) rename crates/{bundler/src/bundler.rs => tuono/src/watch.rs} (97%) rename crates/{ => tuono_lib}/tuono_lib_macros/Cargo.toml (100%) rename crates/{ => tuono_lib}/tuono_lib_macros/src/handler.rs (100%) rename crates/{ => tuono_lib}/tuono_lib_macros/src/lib.rs (100%) delete mode 100644 crates/tuono_lib_macros/README.md diff --git a/.github/workflows/release-on-npm.yml b/.github/workflows/release-on-npm.yml deleted file mode 100644 index 3899daac..00000000 --- a/.github/workflows/release-on-npm.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Publish package to npm -on: - release: - types: [published] -jobs: - publish: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - registry-url: 'https://registry.npmjs.org' - - - uses: pnpm/action-setup@v3 - name: Install pnpm - with: - version: 8 - run_install: false - - - name: Install dependencies - run: pnpm install - - - name: Install turbo - run: pnpm install turbo --global - - - name: Build - run: pnpm build - - - name: Publish - run: pnpm publish --no-git-checks --filter ./packages/tuono - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..48f771ee --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,99 @@ +name: Publish on npm and crates +on: + release: + types: [published] + +jobs: + publish-on-npm-dry-run: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: 'https://registry.npmjs.org' + + - uses: pnpm/action-setup@v3 + name: Install pnpm + with: + version: 8 + run_install: false + + - name: Install dependencies + run: pnpm install + + - name: Install turbo + run: pnpm install turbo --global + + - name: Build + run: pnpm build + + - name: Publish + run: pnpm publish --no-git-checks --dry-run --filter ./packages/tuono + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + publish-on-crates-dry-run: + name: Publish + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + - uses: katyo/publish-crates@v2 + with: + dry-run: true + registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }} + check-repo: true + + publish-on-npm: + needs: [publish-on-crates-dry-run, publish-on-npm-dry-run] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: 'https://registry.npmjs.org' + + - uses: pnpm/action-setup@v3 + name: Install pnpm + with: + version: 8 + run_install: false + + - name: Install dependencies + run: pnpm install + + - name: Install turbo + run: pnpm install turbo --global + + - name: Build + run: pnpm build + + - name: Publish + run: pnpm publish --no-git-checks --filter ./packages/tuono + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + publish-on-crates: + needs: [publish-on-crates-dry-run, publish-on-npm-dry-run] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + - uses: katyo/publish-crates@v2 + with: + registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }} + check-repo: true diff --git a/Cargo.toml b/Cargo.toml index 2fdb2cb5..95571e7d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,8 @@ [workspace] resolver = "2" members = [ - "crates/cli", - "crates/axum_bundler", - "crates/bundler", + "crates/tuono", "crates/tuono_lib", - "crates/tuono_lib_macros" ] exclude = [ "examples/playground" diff --git a/crates/axum_bundler/Cargo.toml b/crates/axum_bundler/Cargo.toml deleted file mode 100644 index 4856c1f2..00000000 --- a/crates/axum_bundler/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "axum_bundler" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow = "1.0.81" -glob = "0.3.1" - -fastmurmur3 = "0.2.0" - diff --git a/crates/axum_bundler/README.md b/crates/axum_bundler/README.md deleted file mode 100644 index e3e24350..00000000 --- a/crates/axum_bundler/README.md +++ /dev/null @@ -1 +0,0 @@ -# Axum bundler diff --git a/crates/axum_bundler/src/lib.rs b/crates/axum_bundler/src/lib.rs deleted file mode 100644 index 38668c50..00000000 --- a/crates/axum_bundler/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod bundle; -pub use bundle::bundle_axum_source; diff --git a/crates/bundler/README.md b/crates/bundler/README.md deleted file mode 100644 index ff3793ec..00000000 --- a/crates/bundler/README.md +++ /dev/null @@ -1 +0,0 @@ -# Tuono bundler diff --git a/crates/bundler/src/lib.rs b/crates/bundler/src/lib.rs deleted file mode 100644 index 58536ce3..00000000 --- a/crates/bundler/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod bundler; - diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml deleted file mode 100644 index 31218b9d..00000000 --- a/crates/cli/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "tuono" -version = "0.0.1" -edition = "2021" -authors = ["V. Ageno "] - -[lib] -name = "tuono" -path = "src/lib.rs" - -[dependencies] -clap = { version = "4.5.4", features = ["derive"] } - -axum_bundler = { path = "../axum_bundler" } -tuono_bundler = { path = "../bundler"} diff --git a/crates/cli/src/actions/build.rs b/crates/cli/src/actions/build.rs deleted file mode 100644 index 70ea7196..00000000 --- a/crates/cli/src/actions/build.rs +++ /dev/null @@ -1,11 +0,0 @@ -use axum_bundler::bundle_axum_source; -use std::process::Command; - -pub fn run() { - // TODO: Pass "build" argument to update SSR path - bundle_axum_source(); - - println!("Build JS source"); - let mut vite_build = Command::new("./node_modules/.bin/tuono-build-prod"); - let _ = &vite_build.output().unwrap(); -} diff --git a/crates/cli/src/actions/dev.rs b/crates/cli/src/actions/dev.rs deleted file mode 100644 index 6c9dfc7a..00000000 --- a/crates/cli/src/actions/dev.rs +++ /dev/null @@ -1,4 +0,0 @@ -use bundler::bundler; -pub fn run() { - bundler::watch().unwrap(); -} diff --git a/crates/cli/src/actions/mod.rs b/crates/cli/src/actions/mod.rs deleted file mode 100644 index 2029ac58..00000000 --- a/crates/cli/src/actions/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod build; -pub mod dev; -pub mod new; diff --git a/crates/cli/src/actions/new.rs b/crates/cli/src/actions/new.rs deleted file mode 100644 index a3fa6c62..00000000 --- a/crates/cli/src/actions/new.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub fn run() { - println!("Scaffold new project"); -} diff --git a/crates/bundler/Cargo.toml b/crates/tuono/Cargo.toml similarity index 74% rename from crates/bundler/Cargo.toml rename to crates/tuono/Cargo.toml index aa267ac4..e8572dbb 100644 --- a/crates/bundler/Cargo.toml +++ b/crates/tuono/Cargo.toml @@ -1,18 +1,19 @@ [package] -name = "tuono_bundler" +name = "tuono" version = "0.0.1" edition = "2021" authors = ["V. Ageno "] [lib] -name = "bundler" +name = "tuono" path = "src/lib.rs" [dependencies] +clap = { version = "4.5.4", features = ["derive"] } watchexec = "4.0.0" miette = "7.2.0" watchexec-signals = "3.0.0" tokio = { version = "1", features = ["full"] } watchexec-supervisor = "2.0.0" +glob = "0.3.1" -axum_bundler = { path = "../axum_bundler" } diff --git a/crates/cli/README.md b/crates/tuono/README.md similarity index 100% rename from crates/cli/README.md rename to crates/tuono/README.md diff --git a/crates/axum_bundler/src/bundle.rs b/crates/tuono/src/axum_source_builder.rs similarity index 100% rename from crates/axum_bundler/src/bundle.rs rename to crates/tuono/src/axum_source_builder.rs diff --git a/crates/cli/src/lib.rs b/crates/tuono/src/lib.rs similarity index 50% rename from crates/cli/src/lib.rs rename to crates/tuono/src/lib.rs index d435e981..7f6756a9 100644 --- a/crates/cli/src/lib.rs +++ b/crates/tuono/src/lib.rs @@ -1,6 +1,7 @@ use clap::{Parser, Subcommand}; -pub mod actions; -use actions::{build, dev, new}; +use std::process::Command; +mod axum_source_builder; +mod watch; #[derive(Subcommand, Debug)] enum Actions { @@ -23,8 +24,16 @@ pub fn cli() { let args = Args::parse(); match args.action.unwrap() { - Actions::Dev => dev::run(), - Actions::Build => build::run(), - Actions::New => new::run(), + Actions::Dev => watch::watch().unwrap(), + Actions::Build => { + axum_source_builder::bundle_axum_source(); + + println!("Build JS source"); + let mut vite_build = Command::new("./node_modules/.bin/tuono-build-prod"); + let _ = &vite_build.output().unwrap(); + } + Actions::New => { + println!("Scaffold new project") + } } } diff --git a/crates/cli/src/main.rs b/crates/tuono/src/main.rs similarity index 100% rename from crates/cli/src/main.rs rename to crates/tuono/src/main.rs diff --git a/crates/bundler/src/bundler.rs b/crates/tuono/src/watch.rs similarity index 97% rename from crates/bundler/src/bundler.rs rename to crates/tuono/src/watch.rs index ee317fe9..100f32f2 100644 --- a/crates/bundler/src/bundler.rs +++ b/crates/tuono/src/watch.rs @@ -1,12 +1,13 @@ use std::sync::Arc; use watchexec_supervisor::command::{Command, Program}; -use axum_bundler::bundle_axum_source; use miette::{IntoDiagnostic, Result}; use watchexec::Watchexec; use watchexec_signals::Signal; use watchexec_supervisor::job::start_job; +use crate::axum_source_builder::bundle_axum_source; + // What is the development pipeline? // // 1. Any file gets updates (rs/js/ts) @@ -22,7 +23,6 @@ use watchexec_supervisor::job::start_job; #[tokio::main] pub async fn watch() -> Result<()> { bundle_axum_source(); - let (watch_client, _) = start_job(Arc::new(Command { program: Program::Exec { prog: "node_modules/.bin/tuono-dev-watch".into(), diff --git a/crates/tuono_lib_macros/Cargo.toml b/crates/tuono_lib/tuono_lib_macros/Cargo.toml similarity index 100% rename from crates/tuono_lib_macros/Cargo.toml rename to crates/tuono_lib/tuono_lib_macros/Cargo.toml diff --git a/crates/tuono_lib_macros/src/handler.rs b/crates/tuono_lib/tuono_lib_macros/src/handler.rs similarity index 100% rename from crates/tuono_lib_macros/src/handler.rs rename to crates/tuono_lib/tuono_lib_macros/src/handler.rs diff --git a/crates/tuono_lib_macros/src/lib.rs b/crates/tuono_lib/tuono_lib_macros/src/lib.rs similarity index 100% rename from crates/tuono_lib_macros/src/lib.rs rename to crates/tuono_lib/tuono_lib_macros/src/lib.rs diff --git a/crates/tuono_lib_macros/README.md b/crates/tuono_lib_macros/README.md deleted file mode 100644 index 28fc1977..00000000 --- a/crates/tuono_lib_macros/README.md +++ /dev/null @@ -1 +0,0 @@ -# Tuonolib Macro