From 67344917f7db04bb73a547c69da3f8717d4b41e6 Mon Sep 17 00:00:00 2001 From: Canleskis <91223490+Canleskis@users.noreply.github.com> Date: Sun, 14 Jan 2024 22:11:01 +0100 Subject: [PATCH] Add deployment workflow --- .github/workflows/deploy.yaml | 31 +++++++++++++++++++++++++++++++ scripts/deploy_benchmarks.sh | 13 +++++++++++++ scripts/deploy_example.sh | 18 ++++++++++++++++++ scripts/deploy_showcase.sh | 5 +++++ static/CNAME | 2 +- 5 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/deploy.yaml create mode 100644 scripts/deploy_benchmarks.sh create mode 100644 scripts/deploy_example.sh create mode 100644 scripts/deploy_showcase.sh diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 0000000..cae1bbe --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,31 @@ +name: Deploy + +on: + push: + branches: ["main"] + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Checkout Particular + uses: actions/checkout@v4 + with: + repository: canleskis/particular + path: particular + + - name: Deploy Benchmarks + run: | + bash scripts/deploy_benchmarks.sh content/benchmarks + + - name: Deploy Examples + run: | + bash scripts/deploy_showcase.sh + + - name: Deploy Site + uses: shalzz/zola-deploy-action@v0.17.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/scripts/deploy_benchmarks.sh b/scripts/deploy_benchmarks.sh new file mode 100644 index 0000000..4724f78 --- /dev/null +++ b/scripts/deploy_benchmarks.sh @@ -0,0 +1,13 @@ +# Add all the benchmarks to a list in single json file. + +out_dir=$1 +name=${2:-"benchmarks"} + +buffer="" + +for file in particular/particular/benches/results/*.json; do + buffer+=$(cat "$file") + buffer+="," +done + +echo "[${buffer%?}]" > $out_dir/$name.json diff --git a/scripts/deploy_example.sh b/scripts/deploy_example.sh new file mode 100644 index 0000000..2000f77 --- /dev/null +++ b/scripts/deploy_example.sh @@ -0,0 +1,18 @@ +path=$1 +out_dir=$2 +target_dir=${3:-"target"} + +metadata=$(grep -A3 "\[package.metadata.particular.rs\]" $path/Cargo.toml | grep -vE "^(#|\[)") + +if [ -n "$metadata" ]; then + name=$(basename $path) + + RUSTFLAGS='-C target-feature=+simd128' cargo build -p $name --release --target wasm32-unknown-unknown + wasm-bindgen --no-typescript --out-name example --out-dir $out_dir/$name --target web $target_dir/wasm32-unknown-unknown/release/$name.wasm + cp $path/preview.png $out_dir/$name/preview.png + cp -r $path/assets $out_dir/$name/assets 2>/dev/null + echo '+++ +'"$metadata"' +template = "demo.html" ++++' >$out_dir/$name/index.md +fi diff --git a/scripts/deploy_showcase.sh b/scripts/deploy_showcase.sh new file mode 100644 index 0000000..cf1e2a3 --- /dev/null +++ b/scripts/deploy_showcase.sh @@ -0,0 +1,5 @@ +for subfolder in particular/examples/*; do + if [ -d $subfolder ]; then + scripts/deploy_example.sh $subfolder content/demos + fi +done diff --git a/static/CNAME b/static/CNAME index b6e77a7..812e762 100644 --- a/static/CNAME +++ b/static/CNAME @@ -1 +1 @@ -particular.rs \ No newline at end of file +canleskis.github.io/particular-website/ \ No newline at end of file