Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: CI

on:
pull_request: {}
push:
branches:
- main

permissions:
contents: read

jobs:
rust:
name: Rust
uses: RustForWeb/.github/.github/workflows/rust.yml@373c25f8fd29e10c40f1343f13312f8be3514af0
with:
target: wasm32-unknown-unknown
14 changes: 14 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Publish

on:
release:
types: [published]

permissions:
contents: read
id-token: write

jobs:
publish:
name: Publish
uses: RustForWeb/.github/.github/workflows/publish.yml@373c25f8fd29e10c40f1343f13312f8be3514af0
159 changes: 3 additions & 156 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,159 +18,6 @@ permissions:
jobs:
release:
name: Release
runs-on: ubuntu-latest

outputs:
version: ${{ steps.extract-version.outputs.VERSION }}

steps:
- name: Generate GitHub App token
id: app-token
uses: getsentry/action-github-app-token@v3
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}

- name: Checkout
uses: actions/checkout@v6

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: wasm32-unknown-unknown

- name: Install Cargo Binary Install
uses: cargo-bins/cargo-binstall@main

- name: Install crates
run: cargo binstall --force -y cargo-workspaces toml-cli

- name: Bump version
run: cargo workspaces version --all --no-git-commit --yes ${{ inputs.bump }}

- name: Extract version
id: extract-version
run: echo "VERSION=v$(toml get Cargo.toml workspace.package.version --raw)" >> "$GITHUB_OUTPUT"

- name: Add changes
run: git add .

- name: Commit
uses: dsanders11/github-app-commit-action@v2
with:
message: ${{ steps.extract-version.outputs.VERSION }}
token: ${{ steps.app-token.outputs.token }}

- name: Reset and pull
run: git reset --hard && git pull

- name: Tag
uses: bruno-fs/repo-tagger@1.0.0
with:
tag: ${{ steps.extract-version.outputs.VERSION }}
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}

- name: Release
uses: softprops/action-gh-release@v3
with:
generate_release_notes: true
make_latest: true
tag_name: ${{ steps.extract-version.outputs.VERSION }}
token: ${{ steps.app-token.outputs.token }}

- name: Publish
run: cargo workspaces publish --publish-as-is --token "${{ secrets.CRATES_IO_TOKEN }}"

release-binary:
strategy:
fail-fast: false
matrix:
package: [mdbook-tabs, mdbook-trunk]
target:
[
aarch64-unknown-linux-gnu,
aarch64-unknown-linux-musl,
x86_64-unknown-linux-gnu,
x86_64-unknown-linux-musl,
aarch64-apple-darwin,
x86_64-apple-darwin,
x86_64-pc-windows-msvc,
]
include:
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
- target: aarch64-unknown-linux-musl
os: ubuntu-latest
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
- target: aarch64-apple-darwin
os: macos-latest
- target: x86_64-apple-darwin
os: macos-latest
- target: x86_64-pc-windows-msvc
os: windows-latest

runs-on: ${{ matrix.os }}
name: Release ${{ matrix.package }} for ${{ matrix.target }}
needs: release

steps:
- uses: actions/checkout@v6

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy, llvm-tools-preview, rustfmt, rust-std
target: ${{ matrix.target }}

- name: Set up target (*-musl)
if: ${{ endsWith(matrix.target, '-musl') }}
run: |
sudo apt update -y
sudo apt install -y musl-dev musl-tools

- name: Set up target (aarch64-unknown-linux-gnu)
if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }}
run: |
sudo apt update -y
sudo apt install -y gcc-aarch64-linux-gnu
echo CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc >> $GITHUB_ENV

- name: Set up target (aarch64-unknown-linux-musl)
if: ${{ matrix.target == 'aarch64-unknown-linux-musl' }}
run: |
sudo apt update -y
sudo apt install -y clang llvm musl-dev musl-tools
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS=-Clink-self-contained=yes -Clinker=rust-lld" >> $GITHUB_ENV
echo CC_aarch64_unknown_linux_musl=clang >> $GITHUB_ENV
echo AR_aarch64_unknown_linux_musl=llvm-ar >> $GITHUB_ENV

- name: Build
run: cargo build --bins --locked --release --target ${{ matrix.target }}

- name: Archive (tar.gz)
if: ${{ !contains(matrix.target, '-windows-') }}
run: tar czf ../../${{ matrix.package }}-${{ needs.release.outputs.version }}-${{ matrix.target }}.tar.gz ${{ matrix.package }}
working-directory: target/${{ matrix.target }}/release

- name: Archive (zip)
if: ${{ contains(matrix.target, '-windows-') }}
run: 7z a ../../${{ matrix.package }}-${{ needs.release.outputs.version }}-${{ matrix.target }}.zip ${{ matrix.package }}.exe
working-directory: target/${{ matrix.target }}/release

- name: Upload release asset (tar.gz)
if: ${{ !contains(matrix.target, '-windows-') }}
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.release.outputs.version }}
files: target/${{ matrix.package }}-${{ needs.release.outputs.version }}-${{ matrix.target }}.tar.gz

- name: Upload release asset (zip)
if: ${{ contains(matrix.target, '-windows-') }}
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.release.outputs.version }}
files: target/${{ matrix.package }}-${{ needs.release.outputs.version }}-${{ matrix.target }}.zip
uses: RustForWeb/.github/.github/workflows/release.yml@373c25f8fd29e10c40f1343f13312f8be3514af0
with:
bump: ${{ inputs.bump }}
98 changes: 6 additions & 92 deletions .github/workflows/website.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Website

on:
pull_request: {}
push:
Expand All @@ -7,101 +8,14 @@ on:

permissions:
contents: read
id-token: write
pages: write

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
book-test:
name: Test Book
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: wasm32-unknown-unknown

- name: Install Cargo Binary Install
uses: cargo-bins/cargo-binstall@main

- name: Install mdBook and Trunk
run: cargo binstall --force -y mdbook trunk

- name: Run tests
run: mdbook test
working-directory: book

book-build:
name: Build Book
needs: book-test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: wasm32-unknown-unknown

- name: Install Cargo Binary Install
uses: cargo-bins/cargo-binstall@main

- name: Install mdBook and Trunk
run: cargo binstall --force -y mdbook trunk

- name: Build Book
run: mdbook build
working-directory: book

- name: Combine Book Outputs
run: cargo run -p mdbook-trunk -- combine
working-directory: book

- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: book
path: book/dist
retention-days: 1
if-no-files-found: error

deploy:
name: Deploy
needs: book-build
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest

permissions:
contents: read
pages: write
id-token: write

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Download artifacts
uses: actions/download-artifact@v8
with:
path: dist
merge-multiple: true

- name: Setup Pages
uses: actions/configure-pages@v6

- name: Upload artifact
uses: actions/upload-pages-artifact@v5
with:
path: dist

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
book:
name: Book
uses: RustForWeb/.github/.github/workflows/book.yml@373c25f8fd29e10c40f1343f13312f8be3514af0
Loading