Merge bb0bffba731d2c50954ab2d49e5554bae02523c2 into 2bc375f95009e600ba8d584a88a2b59da7c0e8ef

This commit is contained in:
Palash Tyagi 2025-05-05 22:27:32 +00:00 committed by GitHub
commit 3673178203
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 127 additions and 11 deletions

74
.github/htmldocs/index.html vendored Normal file
View File

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rustframe</title>
<link rel="icon" type="image/png" href="./rustframe_logo.png">
<style>
body {
font-family: Arial, sans-serif;
background-color: #2b2b2b;
color: #d4d4d4;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
main {
text-align: center;
padding: 20px;
background-color: #3c3c3c;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
max-width: 600px;
}
img {
max-width: 100px;
margin-bottom: 20px;
}
h1 {
/* logo is b35f20 */
color: #f8813f;
}
a {
color: #ff9a60;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<main>
<h1>
<img src="./rustframe_logo.png" alt="Rustframe Logo"><br>
Rustframe
</h1>
<h2>A lightweight dataframe & math toolkit for Rust</h2>
<hr style="border: 1px solid #d4d4d4; margin: 20px 0;">
<p>
📚 <a href="https://magnus167.github.io/rustframe/docs">Docs</a> |
📊 <a href="https://magnus167.github.io/rustframe/benchmark-report/">Benchmarks</a>
<br><br>
🦀 <a href="https://crates.io/crates/rustframe">Crates.io</a> |
🔖 <a href="https://docs.rs/rustframe/latest/rustframe/">docs.rs</a>
<br><br>
🐙 <a href="https://github.com/Magnus167/rustframe">GitHub</a> |
🌐 <a href="https://gitea.nulltech.uk/Magnus167/rustframe">Gitea mirror</a>
</p>
</main>
</body>
</html>

View File

@ -7,7 +7,7 @@ ARG DEBIAN_FRONTEND=noninteractive
RUN apt update -y && apt upgrade -y && useradd -m docker RUN apt update -y && apt upgrade -y && useradd -m docker
RUN apt install -y --no-install-recommends \ RUN apt install -y --no-install-recommends \
curl jq git \ curl jq git unzip \
# dev dependencies # dev dependencies
build-essential libssl-dev libffi-dev python3 python3-venv python3-dev python3-pip \ build-essential libssl-dev libffi-dev python3 python3-venv python3-dev python3-pip \
# dot net core dependencies # dot net core dependencies
@ -15,6 +15,12 @@ RUN apt install -y --no-install-recommends \
# Rust and Cargo dependencies # Rust and Cargo dependencies
gcc cmake gcc cmake
# Install GitHub CLI
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& apt update -y && apt install -y gh \
&& rm -rf /var/lib/apt/lists/*
# Install Rust and Cargo # Install Rust and Cargo
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

View File

@ -6,10 +6,14 @@ concurrency:
on: on:
push: push:
branches: [main] branches: [main, docs_page]
# pull_request: # pull_request:
# branches: [main] # branches: [main]
workflow_dispatch: workflow_dispatch:
workflow_run:
workflows: ["run-benchmarks"]
types:
- completed
permissions: permissions:
contents: read contents: read
@ -100,6 +104,36 @@ jobs:
<(echo '{}') \ <(echo '{}') \
> last-commit-date.json > last-commit-date.json
- name: Download last available benchmark report
run: |
artifact_url=$(gh api -H "Accept: application/vnd.github+json" \
/repos/${{ github.repository }}/actions/artifacts \
| jq -r '.artifacts[] | select(.name | startswith("benchmark-reports")) | .archive_download_url' | head -n 1)
if [ -z "$artifact_url" ]; then
echo "No benchmark artifact found!"
exit 1
fi
curl -L -H "Authorization: Bearer ${{ secrets.CUSTOM_GH_TOKEN }}" \
"$artifact_url" -o benchmark-report.zip
# Print all files in the current directory
echo "Files in the current directory:"
ls -al
# check if the zip file is valid
if ! unzip -tq benchmark-report.zip; then
echo "benchmark-report.zip is invalid or corrupted!"
exit 1
fi
unzip -q benchmark-report.zip -d benchmark-report
echo "<meta http-equiv=\"refresh\" content=\"0; url=report/index.html\">" > benchmark-report/index.html
- name: Copy files to output directory - name: Copy files to output directory
run: | run: |
# mkdir docs # mkdir docs
@ -113,16 +147,16 @@ jobs:
cp last-commit-date.json target/doc/docs/ cp last-commit-date.json target/doc/docs/
# cp -r .github target/doc/docs # cp -r .github target/doc/docs
cp .github/rustframe_logo.png target/doc/docs/ cp .github/rustframe_logo.png target/doc/docs/
echo "<meta http-equiv=\"refresh\" content=\"0; url=docs\">" > target/doc/index.html # echo "<meta http-equiv=\"refresh\" content=\"0; url=docs\">" > target/doc/index.html
touch target/doc/.nojekyll touch target/doc/.nojekyll
# verify that logo exists in the output directory # copy the benchmark report to the output directory
- name: Verify logo directory cp -r benchmark-report target/doc/
- name: Add index.html to output directory
run: | run: |
if [ ! -f target/doc/docs/rustframe_logo.png ]; then cp .github/htmldocs/index.html target/doc/index.html
echo "Logo not found in output directory!" cp .github/rustframe_logo.png target/doc/rustframe_logo.png
exit 1
fi
- name: Upload Pages artifact - name: Upload Pages artifact
# if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' # if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'

View File

@ -1,4 +1,4 @@
name: Run benchmarks name: run-benchmarks
on: on:
workflow_dispatch: workflow_dispatch:

2
.gitignore vendored
View File

@ -15,3 +15,5 @@ data/
.vscode/ .vscode/
tarpaulin-report.* tarpaulin-report.*
.github/htmldocs/rustframe_logo.png