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
55 changes: 3 additions & 52 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,55 +10,6 @@ permissions:
contents: read

jobs:
lint:
name: Lint
runs-on: ubuntu-latest

env:
RUSTFLAGS: '-Dwarnings'

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy, rustfmt

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

- name: Install crates
run: cargo binstall -y --force cargo-deny cargo-machete cargo-sort

- name: Lint
run: cargo clippy --all-features --all-targets --locked

- name: Check dependencies
run: cargo deny check

- name: Check unused dependencies
run: cargo machete --with-metadata

- name: Check manifest formatting
run: cargo sort --workspace --check

- name: Check formatting
run: cargo fmt --all --check

test:
name: Test
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy, rustfmt, rust-src

- name: Test
run: cargo test --all-features --locked --release
rust:
name: Rust
uses: RustForWeb/.github/.github/workflows/rust.yml@d6e6ead9b4da3d70245d3ee4e06fe339244bb200
31 changes: 5 additions & 26 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,11 @@ on:
release:
types: [published]

permissions:
contents: read
id-token: write

jobs:
publish:
name: Publish
runs-on: ubuntu-latest

permissions:
contents: read
id-token: write

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1

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

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

- uses: rust-lang/crates-io-auth-action@v1
id: auth

- name: Publish
run: cargo workspaces publish --publish-as-is
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
uses: RustForWeb/.github/.github/workflows/publish.yml@d6e6ead9b4da3d70245d3ee4e06fe339244bb200
66 changes: 3 additions & 63 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,66 +18,6 @@ permissions:
jobs:
release:
name: Release
runs-on: ubuntu-latest

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

- 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
id: 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: actions/github-script@v9
env:
GIT_TAG: ${{ steps.extract-version.outputs.VERSION }}
GIT_SHA: ${{ steps.commit.outputs.sha }}
with:
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: `refs/tags/${process.env.GIT_TAG}`,
sha: process.env.GIT_SHA
})

- 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 }}
uses: RustForWeb/.github/.github/workflows/release.yml@d6e6ead9b4da3d70245d3ee4e06fe339244bb200
with:
bump: ${{ inputs.bump }}
103 changes: 10 additions & 93 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,102 +8,18 @@ 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

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

- name: Install mdBook
run: cargo binstall --force -y mdbook mdbook-tabs

- name: Clean dependencies
run: cargo clean -p fortifier -p regex

- name: Build dependencies
run: cargo build -p fortifier --features all-validations -p regex

- name: Run tests
run: mdbook test -L ../target/debug/deps
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

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

- name: Install mdBook
run: cargo binstall --force -y mdbook mdbook-tabs

- name: Install Node.js dependencies
run: npm install

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

- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: book
path: book/book
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@d6e6ead9b4da3d70245d3ee4e06fe339244bb200
with:
combine: false
clean-options: '-p fortifier -p regex'
build-options: '-p fortifier --features all-validations -p regex'
Loading