Desktop: Forward multi-clicks (double/triple/etc.-clicks) to CEF correctly #5256
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Editor: Dev & CI" | |
on: | |
push: | |
branches: | |
- master | |
pull_request: {} | |
env: | |
CARGO_TERM_COLOR: always | |
INDEX_HTML_HEAD_REPLACEMENT: <script defer data-domain="dev.graphite.rs" data-api="https://graphite.rs/visit/event" src="https://graphite.rs/visit/script.hash.js"></script> | |
jobs: | |
build: | |
runs-on: self-hosted | |
permissions: | |
contents: write | |
deployments: write | |
pull-requests: write | |
actions: write | |
env: | |
RUSTC_WRAPPER: /usr/bin/sccache | |
CARGO_INCREMENTAL: 0 | |
SCCACHE_DIR: /var/lib/github-actions/.cache | |
steps: | |
- name: 📥 Clone and checkout repository | |
uses: actions/checkout@v3 | |
- name: 🗑 Clear wasm-bindgen cache | |
run: rm -r ~/.cache/.wasm-pack || true | |
- name: 🟢 Install the latest Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "latest" | |
- name: 🚧 Install Node dependencies | |
run: | | |
cd frontend | |
npm ci | |
- name: 🦀 Install the latest Rust | |
run: | | |
echo "Initial system version:" | |
rustc --version | |
rustup update stable | |
echo "Latest updated version:" | |
rustc --version | |
- name: 🦀 Fetch Rust dependencies | |
run: | | |
echo "If it fails here, the committed Cargo.lock may be out of date" | |
cargo fetch --locked | |
- name: ✂ Replace template in <head> of index.html | |
run: | | |
# Remove the INDEX_HTML_HEAD_REPLACEMENT environment variable for build links (not master deploys) | |
git rev-parse --abbrev-ref HEAD | grep master > /dev/null || export INDEX_HTML_HEAD_REPLACEMENT="" | |
sed -i "s|<!-- INDEX_HTML_HEAD_REPLACEMENT -->|$INDEX_HTML_HEAD_REPLACEMENT|" frontend/index.html | |
- name: 🌐 Build Graphite web code | |
env: | |
NODE_ENV: production | |
run: | | |
cd frontend | |
mold -run npm run build | |
- name: 📤 Publish to Cloudflare Pages | |
id: cloudflare | |
uses: cloudflare/pages-action@1 | |
continue-on-error: true | |
with: | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
gitHubToken: ${{ secrets.GITHUB_TOKEN }} | |
projectName: graphite-dev | |
directory: frontend/dist | |
- name: 💬 Comment build link URL to commit hash page on GitHub | |
if: github.ref == 'refs/heads/master' | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh api \ | |
-X POST \ | |
-H "Accept: application/vnd.github+json" \ | |
/repos/${{ github.repository }}/commits/$(git rev-parse HEAD)/comments \ | |
-f body="| 📦 **Build Complete for** $(git rev-parse HEAD) | | |
|-| | |
| ${{ steps.cloudflare.outputs.url }} |" | |
- name: 👕 Lint Graphite web formatting | |
env: | |
NODE_ENV: production | |
run: | | |
cd frontend | |
npm run lint | |
- name: 🔬 Check Rust formatting | |
run: | | |
mold -run cargo fmt --all -- --check | |
- name: 🦀 Build Rust code | |
env: | |
RUSTFLAGS: -Dwarnings | |
run: | | |
mold -run cargo build --all-features | |
- name: 🧪 Run Rust tests | |
run: | | |
mold -run cargo test --all-features | |
- name: 📃 Generate code documentation info for website | |
if: github.ref == 'refs/heads/master' | |
run: | | |
cargo test --package graphite-editor --lib -- messages::message::test::generate_message_tree | |
mkdir -p artifacts-generated | |
mv hierarchical_message_system_tree.txt artifacts-generated/hierarchical_message_system_tree.txt | |
- name: 💿 Obtain cache of auto-generated code docs artifacts, to check if they've changed | |
if: github.ref == 'refs/heads/master' | |
id: cache-website-code-docs | |
uses: actions/cache/restore@v3 | |
with: | |
path: artifacts | |
key: website-code-docs | |
- name: 🔍 Check if auto-generated code docs artifacts changed | |
if: github.ref == 'refs/heads/master' | |
id: website-code-docs-changed | |
run: | | |
if ! diff --brief --recursive artifacts-generated artifacts; then | |
echo "Auto-generated code docs artifacts have changed." | |
rm -rf artifacts | |
mv artifacts-generated artifacts | |
echo "changed=true" >> $GITHUB_OUTPUT | |
else | |
echo "Auto-generated code docs artifacts have not changed." | |
rm -rf artifacts | |
rm -rf artifacts-generated | |
fi | |
- name: 💾 Save cache of auto-generated code docs artifacts | |
if: steps.website-code-docs-changed.outputs.changed == 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: artifacts | |
key: ${{ steps.cache-website-code-docs.outputs.cache-primary-key }} | |
- name: ♻️ Trigger website rebuild if the auto-generated code docs artifacts have changed | |
if: steps.website-code-docs-changed.outputs.changed == 'true' | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
rm -rf artifacts | |
gh workflow run website.yml --ref master | |
# miri: | |
# runs-on: self-hosted | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: 🧪 Run Rust miri | |
# run: | | |
# mold -run cargo +nightly miri nextest run -j32 --all-features | |
cargo-deny: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📥 Clone and checkout repository | |
uses: actions/checkout@v3 | |
- name: 📜 Check crate license compatibility for root workspace | |
uses: EmbarkStudios/cargo-deny-action@v2 | |
with: | |
command: check bans licenses sources | |
- name: 📜 Check crate license compatibility for /libraries/rawkit | |
uses: EmbarkStudios/cargo-deny-action@v2 | |
with: | |
command: check bans licenses sources | |
manifest-path: libraries/rawkit/Cargo.toml |