diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 2492534c..1ec6eb80 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,43 +1,41 @@ -name: Docs - +# This is a copy of https://github.com/rust-lang/mdBook/wiki/Automated-Deployment%3A-GitHub-Actions#using-deploy-via-actions +# as of 2024-02-29 +name: Deploy pages on: push: - branches: ["main"] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "pages" - cancel-in-progress: true + branches: + - main jobs: - build: + deploy: runs-on: ubuntu-latest + permissions: + contents: write # To push a branch + pages: write # To push to a GitHub Pages site + id-token: write # To update the deployment status steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Pages - uses: actions/configure-pages@v4 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@v1 + - uses: actions/checkout@v4 with: - source: ./docs - destination: ./_site + fetch-depth: 0 + - name: Install latest mdbook + run: | + tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name') + url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz" + mkdir mdbook + curl -sSL $url | tar -xz --directory=./mdbook + echo `pwd`/mdbook >> $GITHUB_PATH + - name: Build Book + run: | + # This assumes your book is in the root of your repository. + # Just add a `cd` here if you need to change to another directory. + cd docs && mdbook build + - name: Setup Pages + uses: actions/configure-pages@v2 - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: + uses: actions/upload-pages-artifact@v1 + with: + # Upload entire repository + path: 'book' - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v1 diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..7585238e --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +book diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index 1ffd2a02..00000000 --- a/docs/Gemfile +++ /dev/null @@ -1,14 +0,0 @@ -# Bundler setup for jekyll to be deployed on github pages. - -source "https://rubygems.org" - -# Note that we're using the github-pages gem to mimic the GitHub pages -# automated setup. That installs jekyll, a default set of jekyll -# plugins, and a modified jekyll configuration. -group :jekyll_plugins do - gem "github-pages" - gem "jekyll-remote-theme" -end - -# Prefer the GitHub flavored markdown version of kramdown. -gem "kramdown-parser-gfm" diff --git a/docs/book.toml b/docs/book.toml new file mode 100644 index 00000000..d73a1d0e --- /dev/null +++ b/docs/book.toml @@ -0,0 +1,6 @@ +[book] +authors = ["Colin Walters"] +language = "en" +multilingual = false +src = "src" +title = "bootc" diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md new file mode 100644 index 00000000..a58d45cb --- /dev/null +++ b/docs/src/SUMMARY.md @@ -0,0 +1,3 @@ +# Summary + +[Introduction](intro.md) diff --git a/docs/src/chapter_1.md b/docs/src/chapter_1.md new file mode 100644 index 00000000..b743fda3 --- /dev/null +++ b/docs/src/chapter_1.md @@ -0,0 +1 @@ +# Chapter 1 diff --git a/docs/src/intro.md b/docs/src/intro.md new file mode 100644 index 00000000..6e158dd4 --- /dev/null +++ b/docs/src/intro.md @@ -0,0 +1,14 @@ +# bootc + +Transactional, in-place operating system updates using OCI/Docker container images. + +The original Docker container model of using "layers" to model +applications has been extremely successful. This project +aims to apply the same technique for bootable host systems - using +standard OCI/Docker containers as a transport and delivery format +for base operating system updates. + +The container image includes a Linux kernel (in e.g. `/usr/lib/modules`), +which is used to boot. At runtime on a target system, the base userspace is +*not* itself running in a container by default. For example, assuming +systemd is in use, systemd acts as pid1 as usual - there's no "outer" process.