Skip to content

perf: JIT native regression because of program reuse #2

perf: JIT native regression because of program reuse

perf: JIT native regression because of program reuse #2

Workflow file for this run

name: release
on:
push:
tags:
- "*"
jobs:
build-binaries:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Build wasm linter and bundle for WebUI
shell: bash
run: |
cargo build -p pd-vm-lint-wasm --target wasm32-unknown-unknown --release --locked
mkdir -p pd-controller/webui/public/wasm
cp target/wasm32-unknown-unknown/release/pd_vm_lint_wasm.wasm pd-controller/webui/public/wasm/pd_vm_lint_wasm.wasm
- name: Build WebUI assets
shell: bash
run: |
cd pd-controller/webui
bun install --frozen-lockfile
bun run tsc --noEmit
bun run vite build
test -f dist/wasm/pd_vm_lint_wasm.wasm
- name: Compute git build metadata
shell: bash
run: |
echo "PD_BUILD_GIT_TAG=${GITHUB_REF_NAME}" >> "$GITHUB_ENV"
echo "PD_BUILD_GIT_COMMIT=$(git rev-parse --short=12 HEAD)" >> "$GITHUB_ENV"
if [[ -n "$(git status --porcelain --untracked-files=no)" ]]; then
echo "PD_BUILD_GIT_DIRTY=true" >> "$GITHUB_ENV"
else
echo "PD_BUILD_GIT_DIRTY=false" >> "$GITHUB_ENV"
fi
- name: Build pd-edge-http-proxy, pd-edge-console, pd-controller and pd-vm-run
run: |
cargo build -p pd-edge --bin pd-edge-http-proxy --bin pd-edge-console --release --locked
cargo build -p pd-controller --release --locked
cargo build -p pd-vm --bin pd-vm-run --release --locked
- name: Package binaries
shell: bash
run: |
mkdir -p dist
cp target/release/pd-edge-http-proxy dist/pd-edge-http-proxy
cp target/release/pd-edge-console dist/pd-edge-console
cp target/release/pd-controller dist/pd-controller
cp target/release/pd-vm-run dist/pd-vm-run
tar -czf dist/pd-edge-http-proxy-${{ github.ref_name }}-linux-x86_64.tar.gz -C dist pd-edge-http-proxy
tar -czf dist/pd-edge-console-${{ github.ref_name }}-linux-x86_64.tar.gz -C dist pd-edge-console
tar -czf dist/pd-controller-${{ github.ref_name }}-linux-x86_64.tar.gz -C dist pd-controller
tar -czf dist/pd-vm-run-${{ github.ref_name }}-linux-x86_64.tar.gz -C dist pd-vm-run
- name: Upload workflow artifacts
uses: actions/upload-artifact@v4
with:
name: release-binaries-${{ github.ref_name }}-linux-x86_64
path: |
dist/pd-edge-http-proxy-${{ github.ref_name }}-linux-x86_64.tar.gz
dist/pd-edge-console-${{ github.ref_name }}-linux-x86_64.tar.gz
dist/pd-controller-${{ github.ref_name }}-linux-x86_64.tar.gz
dist/pd-vm-run-${{ github.ref_name }}-linux-x86_64.tar.gz
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: fffonion
password: ${{ secrets.DOCKERHUB_PUSH_TOKEN }}
- name: Build and push pd-edge-http-proxy image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.pd-edge
push: true
tags: |
fffonion/pd-edge:${{ github.ref_name }}
fffonion/pd-edge:latest
- name: Build and push pd-controller image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.pd-controller
push: true
tags: |
fffonion/pd-controller:${{ github.ref_name }}
fffonion/pd-controller:latest
- name: Publish release asset
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/pd-edge-http-proxy-${{ github.ref_name }}-linux-x86_64.tar.gz
dist/pd-edge-console-${{ github.ref_name }}-linux-x86_64.tar.gz
dist/pd-controller-${{ github.ref_name }}-linux-x86_64.tar.gz
dist/pd-vm-run-${{ github.ref_name }}-linux-x86_64.tar.gz