mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
* Update WebKit * Use 5x less memory in Bun.serve() * Update Dockerfile.devcontainer * Update async-overhead.mjs Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
150 lines
4.8 KiB
YAML
150 lines
4.8 KiB
YAML
name: bun-linux
|
|
env:
|
|
REGISTRY: ghcr.io
|
|
IMAGE_NAME: ${{ github.repository }}
|
|
TEST_TAG: bun-test'
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- "src/**/*"
|
|
- "test/**/*"
|
|
- "build.zig"
|
|
- "Makefile"
|
|
- "Dockerfile"
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- "src/**/*"
|
|
- "test/**/*"
|
|
- "build.zig"
|
|
- "Makefile"
|
|
- "Dockerfile"
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
linux:
|
|
name: ${{matrix.tag}}
|
|
runs-on: ${{matrix.runner}}
|
|
timeout-minutes: 90
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- cpu: haswell
|
|
tag: linux-x64
|
|
arch: x86_64
|
|
build_arch: amd64
|
|
runner: linux-amd64
|
|
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/dec1/bun-webkit-linux-amd64-lto.tar.gz"
|
|
webkit_basename: "bun-webkit-linux-amd64-lto"
|
|
- cpu: westmere
|
|
tag: linux-x64-baseline
|
|
arch: x86_64
|
|
build_arch: amd64
|
|
runner: linux-amd64
|
|
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/dec1/bun-webkit-linux-amd64-lto.tar.gz"
|
|
webkit_basename: "bun-webkit-linux-amd64-lto"
|
|
- cpu: native
|
|
tag: linux-aarch64
|
|
arch: aarch64
|
|
build_arch: arm64
|
|
runner: linux-arm64
|
|
webkit_url: "https://github.com/oven-sh/WebKit/releases/download/dec1/bun-webkit-linux-arm64-lto.tar.gz"
|
|
webkit_basename: "bun-webkit-linux-arm64-lto"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
- uses: docker/setup-buildx-action@v2
|
|
id: buildx
|
|
with:
|
|
install: true
|
|
- name: Run
|
|
run: |
|
|
rm -rf ${{runner.temp}}/release
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
- run: |
|
|
mkdir -p /tmp/.buildx-cache-${{matrix.tag}}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
context: .
|
|
push: false
|
|
cache-from: type=local,src=/tmp/.buildx-cache-${{matrix.tag}}
|
|
cache-to: type=local,dest=/tmp/.buildx-cache-${{matrix.tag}}
|
|
build-args: |
|
|
ARCH=${{matrix.arch}}
|
|
BUILDARCH=${{matrix.build_arch}}
|
|
CPU_TARGET=${{matrix.cpu}}
|
|
WEBKIT_URL=${{matrix.webkit_url}}
|
|
GIT_SHA=${{github.sha}}
|
|
WEBKIT_BASENAME=${{matrix.webkit_basename}}
|
|
platforms: linux/${{matrix.build_arch}}
|
|
target: artifact
|
|
outputs: type=local,dest=${{runner.temp}}/release
|
|
- name: Zip
|
|
run: |
|
|
# if zip is not found
|
|
if [ ! -x "$(command -v zip)" ]; then
|
|
sudo apt-get update && sudo apt-get install -y zip --no-install-recommends
|
|
fi
|
|
|
|
if [ ! -x "$(command -v strip)" ]; then
|
|
sudo apt-get update && sudo apt-get install -y binutils --no-install-recommends
|
|
fi
|
|
|
|
cd ${{runner.temp}}/release
|
|
chmod +x bun-profile bun
|
|
|
|
mkdir bun-${{matrix.tag}}-profile
|
|
mkdir bun-${{matrix.tag}}
|
|
|
|
strip bun
|
|
|
|
mv bun-profile bun-${{matrix.tag}}-profile/bun-profile
|
|
mv bun bun-${{matrix.tag}}/bun
|
|
|
|
zip -r bun-${{matrix.tag}}-profile.zip bun-${{matrix.tag}}-profile
|
|
zip -r bun-${{matrix.tag}}.zip bun-${{matrix.tag}}
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: bun-${{matrix.tag}}-profile
|
|
path: ${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: bun-${{matrix.tag}}
|
|
path: ${{runner.temp}}/release/bun-${{matrix.tag}}.zip
|
|
- name: Release
|
|
id: release
|
|
uses: ncipollo/release-action@v1
|
|
if: github.ref == 'refs/heads/main'
|
|
with:
|
|
prerelease: true
|
|
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
|
|
allowUpdates: true
|
|
replacesArtifacts: true
|
|
generateReleaseNotes: true
|
|
artifactErrorsFailBuild: true
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
name: "Canary (${{github.sha}})"
|
|
tag: "canary"
|
|
artifacts: "${{runner.temp}}/release/bun-${{matrix.tag}}.zip,${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip"
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: bun-obj-${{matrix.tag}}
|
|
path: ${{runner.temp}}/release/bun-obj
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{matrix.tag}}-dependencies
|
|
path: ${{runner.temp}}/release/bun-dependencies
|