From c26162a15249c6be5e1d73bdae32d81f12d3164c Mon Sep 17 00:00:00 2001 From: Stefano De Cillis Date: Fri, 17 May 2024 22:19:54 +0200 Subject: [PATCH] add: oranda support for auto generated landing page --- .github/workflows/web.yml | 102 ++++++++++++++++++++++++++++++++++++++ README.md | 6 +++ oranda.json | 5 ++ src/lib.rs | 5 ++ 4 files changed, 118 insertions(+) create mode 100644 .github/workflows/web.yml create mode 100644 oranda.json diff --git a/.github/workflows/web.yml b/.github/workflows/web.yml new file mode 100644 index 0000000..b6fe34a --- /dev/null +++ b/.github/workflows/web.yml @@ -0,0 +1,102 @@ +# Workflow to build your docs with oranda (and mdbook) +# and deploy them to Github Pages +name: Web + +# We're going to push to the gh-pages branch, so we need that permission +permissions: + contents: write + +# What situations do we want to build docs in? +# All of these work independently and can be removed / commented out +# if you don't want oranda/mdbook running in that situation +on: + # Check that a PR didn't break docs! + # + # Note that the "Deploy to Github Pages" step won't run in this mode, + # so this won't have any side-effects. But it will tell you if a PR + # completely broke oranda/mdbook. Sadly we don't provide previews (yet)! + pull_request: + + # Whenever something gets pushed to main, update the docs! + # This is great for getting docs changes live without cutting a full release. + # + # Note that if you're using cargo-dist, this will "race" the Release workflow + # that actually builds the Github Release that oranda tries to read (and + # this will almost certainly complete first). As a result you will publish + # docs for the latest commit but the oranda landing page won't know about + # the latest release. The workflow_run trigger below will properly wait for + # cargo-dist, and so this half-published state will only last for ~10 minutes. + # + # If you only want docs to update with releases, disable this, or change it to + # a "release" branch. You can, of course, also manually trigger a workflow run + # when you want the docs to update. + push: + branches: + - main + + # Whenever a workflow called "Release" completes, update the docs! + # + # If you're using cargo-dist, this is recommended, as it will ensure that + # oranda always sees the latest release right when it's available. Note + # however that Github's UI is wonky when you use workflow_run, and won't + # show this workflow as part of any commit. You have to go to the "actions" + # tab for your repo to see this one running (the gh-pages deploy will also + # only show up there). + workflow_run: + workflows: [ "Release" ] + types: + - completed + +# Alright, let's do it! +jobs: + web: + name: Build and deploy site and docs + runs-on: ubuntu-latest + steps: + # Setup + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: dtolnay/rust-toolchain@stable + - uses: swatinem/rust-cache@v2 + + # If you use any mdbook plugins, here's the place to install them! + + # Install and run oranda (and mdbook) + # This will write all output to ./public/ (including copying mdbook's output to there) + - name: Install and run oranda + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/oranda/releases/latest/download/oranda-installer.sh | sh + oranda build + + - name: Prepare HTML for link checking + # untitaker/hyperlink supports no site prefixes, move entire site into + # a subfolder + run: | + mkdir /tmp/public/ && cp -R public /tmp/public/speak-easy + cp LICENSE /tmp/public/ + cp LICENSE /tmp/public/speak-easy/ + cp public/index.html /tmp/public + + - name: Check HTML for broken internal links + uses: untitaker/hyperlink@0.1.29 + with: + args: /tmp/public/ + + # Deploy to our gh-pages branch (creating it if it doesn't exist) + # the "public" dir that oranda made above will become the root dir + # of this branch. + # + # Note that once the gh-pages branch exists, you must + # go into repo's settings > pages and set "deploy from branch: gh-pages" + # the other defaults work fine. + - name: Deploy to Github Pages + uses: JamesIves/github-pages-deploy-action@v4.4.1 + # ONLY if we're on main (so no PRs or feature branches allowed!) + if: ${{ github.ref == 'refs/heads/main' }} + with: + branch: gh-pages + # Gotta tell the action where to find oranda's output + folder: public + token: ${{ secrets.GITHUB_TOKEN }} + single-commit: true \ No newline at end of file diff --git a/README.md b/README.md index aed2517..036c6a4 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ [splash]: https://raw.githubusercontent.com/stefanodecillis/speak-easy/main/assets/crab-contained.jpg +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) +[![Crates.io Version](https://img.shields.io/crates/v/speak-easy)](https://crates.io/crates/speak-easy) + # Speak-Easy Speak-Easy is a Rust library that provides logging functionalities with different levels and rotation options built on top of tokio-rs tracing. @@ -39,5 +42,8 @@ Please replace "/path/to/log/files" with the actual path where you want to store ## License This project is licensed under the MIT License - see the LICENSE file for details. +## Contributing +Feel free to open issues and send PRs. We will evaluate them together in the comment section. + diff --git a/oranda.json b/oranda.json new file mode 100644 index 0000000..5f9e0fa --- /dev/null +++ b/oranda.json @@ -0,0 +1,5 @@ +{ + "build": { + "path_prefix": "speak-easy" + } +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index fbb0aed..abe2621 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -83,6 +83,11 @@ //! ## License //! //! This project is licensed under the MIT license. +//! +//! ## Contributing +//! Feel free to open issues and send PRs. We will evaluate them together in the comment section. +//! +//! mod formatter; pub use tracing::{debug, error, info, trace, warn, Level};