From e8144ebb134837fe4d3c72f7fad467860ff6ac93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABlle=20Huisman?= Date: Mon, 27 Apr 2026 14:21:28 +0200 Subject: [PATCH] ci: use reusable workflows --- .github/workflows/ci.yml | 49 ++++------------- .github/workflows/labels.yml | 14 ++--- .github/workflows/publish.yml | 33 ++---------- .github/workflows/release.yml | 68 ++---------------------- .github/workflows/website.yml | 99 +++-------------------------------- 5 files changed, 28 insertions(+), 235 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f27a80..13e701b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,43 +10,12 @@ 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 - target: wasm32-unknown-unknown - - - 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 + rust: + name: Rust + uses: RustForWeb/.github/.github/workflows/rust.yml@c18f3b7315df398b6af8d03f823e31daeda63114 + with: + enable-test: false + target: wasm32-unknown-unknown test: name: Test @@ -74,13 +43,13 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Rust toolchain - uses: actions-rust-lang/setup-rust-toolchain@v1 + uses: actions-rust-lang/setup-rust-toolchain@2b1f5e9b395427c92ee4e3331786ca3c37afe2d7 # v1.16.0 with: - components: clippy, rustfmt target: wasm32-unknown-unknown + components: rust-src - name: Test run: cargo test --locked --release diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 960b4ad..32de412 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -8,14 +8,6 @@ permissions: issues: write jobs: - sync-labels: - name: Sync Labels - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - with: - sparse-checkout: .github/labels.yml - - - uses: EndBug/label-sync@v2 - with: - config-file: .github/labels.yml + labels: + name: Labels + uses: RustForWeb/.github/.github/workflows/labels.yml@c18f3b7315df398b6af8d03f823e31daeda63114 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 51b6d84..823af00 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,34 +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 - 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 - - - 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@c18f3b7315df398b6af8d03f823e31daeda63114 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 50f674f..1afcb04 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,68 +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 - 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 - 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@c18f3b7315df398b6af8d03f823e31daeda63114 + with: + bump: ${{ inputs.bump }} diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index a4fbbbb..a858066 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -1,4 +1,5 @@ name: Website + on: pull_request: {} push: @@ -7,100 +8,16 @@ 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 - run: cargo binstall --force -y mdbook mdbook-tabs - - - 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 - 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@c18f3b7315df398b6af8d03f823e31daeda63114 + with: + combine: false