From dfd39279e2dc1518e59f7ab6475b8cfca5b2b38f Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 16 Apr 2024 22:42:28 +0530 Subject: [PATCH] feat(release): set up oranda --- .github/workflows/web.yml | 88 +++++++++++++++++++++++++++++++++++++++ .gitignore | 3 ++ oranda.json | 20 +++++++++ 3 files changed, 111 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..b28dda2 --- /dev/null +++ b/.github/workflows/web.yml @@ -0,0 +1,88 @@ +# 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/download/v0.6.1/oranda-installer.sh | sh + oranda build + + # 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/.gitignore b/.gitignore index 77fa7f4..f9bf24d 100644 --- a/.gitignore +++ b/.gitignore @@ -114,3 +114,6 @@ fabric.properties .history # End of https://www.gitignore.io/api/clion,rust,visualstudiocode + +# Generated by `oranda generate ci` +public/ \ No newline at end of file diff --git a/oranda.json b/oranda.json new file mode 100644 index 0000000..e8f0645 --- /dev/null +++ b/oranda.json @@ -0,0 +1,20 @@ +{ + "build": { + "path_prefix": "adx" + }, + "components": { + "changelog": false, + "artifacts": { + "auto": true, + "package_managers": { + "preferred": { + "nix flake": "nix profile install github:msfjarvis/adx", + "cargo": "cargo install adx --locked --profile=dist" + }, + "additional": { + "binstall": "cargo binstall adx" + } + } + } + } +}