diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 2492534ca..3e063fb26 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,8 +1,8 @@ -name: Docs +name: Deploy docs to pages on: push: - branches: ["main"] + branches: [main] workflow_dispatch: permissions: @@ -12,25 +12,32 @@ permissions: concurrency: group: "pages" - cancel-in-progress: true + cancel-in-progress: false jobs: build: runs-on: ubuntu-latest + env: + MDBOOK_VERSION: 0.4.37 steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + - name: Install 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: Setup Pages + id: pages uses: actions/configure-pages@v4 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@v1 - with: - source: ./docs - destination: ./_site + - name: Build with mdBook + run: cd docs && mdbook build - name: Upload artifact uses: actions/upload-pages-artifact@v3 + with: + path: ./docs/book - # Deployment job deploy: environment: name: github-pages diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..7585238ef --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +book diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index 1ffd2a029..000000000 --- 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 000000000..d73a1d0ef --- /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 000000000..a58d45cb1 --- /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 000000000..b743fda35 --- /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 000000000..6e158dd43 --- /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.