Skip to content

Commit

Permalink
Refactor www build
Browse files Browse the repository at this point in the history
  • Loading branch information
kiron1 committed Jan 19, 2025
1 parent 3bb8a76 commit bc8015d
Show file tree
Hide file tree
Showing 8 changed files with 3,269 additions and 94 deletions.
141 changes: 113 additions & 28 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
branches:
- main
tags:
- 'v*'
- "v*"
pull_request:
branches:
- main
Expand All @@ -31,12 +31,10 @@ jobs:
fetch-depth: 1
- name: Version
id: version
run: |
./tools/version | tee -a "${GITHUB_OUTPUT}"
run: ./tools/version | tee -a "${GITHUB_OUTPUT}"
- name: Rev
id: rev
run: |
printf 'rev=%s\n' "$(git rev-parse --short HEAD)" | tee -a "${GITHUB_OUTPUT}"
run: printf 'rev=%s\n' "$(git rev-parse --short HEAD)" | tee -a "${GITHUB_OUTPUT}"

bazel_test:
name: Bazel test
Expand Down Expand Up @@ -102,20 +100,9 @@ jobs:
${{ matrix.buildflags }}
--
//...
shell: cmd
if: runner.os == 'Windows'
- name: Run tests
run: >
bazel
test
--config=ci
--//:version=${{ needs.version.outputs.version }}
--//:rev=${{ needs.version.outputs.rev }}
${{ matrix.buildflags }}
--
//...
-//doc/...
-//www/...
${{ runner.os != 'macOS' && '-//macos/... -//pkg/macos/... -//proxydetox:proxydetoxcli' || '' }}
if: runner.os != 'Windows'
bazel_check:
name: Bazel check
Expand Down Expand Up @@ -156,6 +143,43 @@ jobs:
-//macos/...
-//pkg/macos/...
-//proxydetox:proxydetoxcli
-//doc/...
-//www/...
bazel_www:
name: Bazel www
runs-on: ubuntu-24.04

needs:
- bazel_check
- bazel_test

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install Linux dependency
run: sudo apt-get install libkrb5-dev
- name: Linux version
run: |
printf 'OS_VER=%s\n' "$(lsb_release --short --release)" | tee -a $GITHUB_ENV
- name: Bazel cache
uses: actions/cache@v4
with:
path: |
~/.cache/bazel_build_cache
~/.cache/bazel_repo_cache
key: ${{ runner.os }}-${{ env.OS_VER }}-bazel-test-${{ hashFiles('Cargo.lock', 'MODULE.bazel.lock') }}
restore-keys: |
${{ runner.os }}-${{ env.OS_VER }}-bazel-test-
- name: Run build
run: bazel build --config=ci -- //www
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: github-pages
path: bazel-bin/www/www.tar.gz

bazel_build:
name: Package
Expand Down Expand Up @@ -250,10 +274,12 @@ jobs:
name: pkg-bazel-${{ matrix.build }}
path: ./${{ matrix.pkgfile }}

cargo_build_and_test:
name: Cargo build and test
cargo_test:
name: Cargo test
runs-on: windows-latest

needs: version

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -267,20 +293,48 @@ jobs:
override: true
- uses: Swatinem/rust-cache@v2
with:
key: ${{ runner.os }}
key: ${{ runner.os }}-test
# see https://github.com/rust-lang/rust-bindgen/issues/1797
- name: Install Windows dependency (LLVM)
uses: KyleMayes/[email protected]
if: runner.os == 'Windows'
with:
version: "11.0"
directory: ${{ runner.temp }}/llvm
- name: Set LIBCLANG_PATH
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
shell: pwsh
if: runner.os == 'Windows'
- name: Run cargo test
run: cargo test

cargo_build:
name: Cargo build
runs-on: windows-latest

needs: cargo_test

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- uses: Swatinem/rust-cache@v2
with:
key: ${{ runner.os }}-build
# see https://github.com/rust-lang/rust-bindgen/issues/1797
- name: Install Windows dependency (LLVM)
uses: KyleMayes/[email protected]
with:
version: "11.0"
directory: ${{ runner.temp }}/llvm
- name: Set LIBCLANG_PATH
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
shell: pwsh
- name: Build Release Package
id: buildpkg
run: ./tools/mkzip.ps1
Expand All @@ -294,10 +348,13 @@ jobs:
mkrelease:
name: Create Release
runs-on: ubuntu-24.04

needs:
- version
- bazel_build
- cargo_build_and_test
- bazel_www
- cargo_build
- version

steps:
- name: Download pkg artifact
uses: actions/download-artifact@v4
Expand All @@ -307,14 +364,37 @@ jobs:
- name: Show downloaded artifacts
run: find . -name '*.deb' -o -name '*.pkg' -o -name '*.zip'
- name: Create Release
if: ${{ github.event_name == 'push' && startswith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
if: ${{ github.event_name == 'push' && startswith(github.ref, 'refs/tags/') }}
run: |
gh --repo "${REPO}" release create "${VERSION}" --generate-notes *.deb *.pkg *.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
VERSION: v${{ needs.version.outputs.version }}

pages:
if: ${{ github.event_name == 'push' && startswith(github.ref, 'refs/tags/') }}

needs:
- bazel_www
- mkrelease

# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write
id-token: write

# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-24.04
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

# The success job is here to consolidate the total success/failure state of
# all other jobs. This job is then included in the GitHub branch protection
# rule which prevents merges unless all other jobs are passing. This makes
Expand All @@ -324,8 +404,13 @@ jobs:
name: Success gate
if: always()
needs:
- bazel_build
- cargo_build_and_test
- bazel_test
- bazel_check
- bazel_www
- cargo_build
- cargo_test
- mkrelease
- version
runs-on: ubuntu-24.04
steps:
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/pages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: pages
on:
push:
branches:
- 'main'
- "main"
workflow_dispatch:

jobs:
Expand All @@ -13,11 +13,6 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install mdbook
run: |
curl -sSfLo mdbook.tar.gz https://github.com/rust-lang/mdBook/releases/download/v0.4.36/mdbook-v0.4.36-x86_64-unknown-linux-musl.tar.gz
tar xzf mdbook.tar.gz
./mdbook --version
- name: Build pages
run: |
MDBOOK=$(pwd)/mdbook make pages
Expand Down
Loading

0 comments on commit bc8015d

Please sign in to comment.