mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 10:58:56 +00:00
Most CLI tools have the style convention of referring to themselves in lowercase. It is, after all, the name that users type in when using the tool. This PR maintains that convention in bun. "Drop the uppercase B, it's cleaner"
168 lines
5.5 KiB
YAML
168 lines
5.5 KiB
YAML
name: bun
|
|
on:
|
|
push:
|
|
branches: [main, bun-actions]
|
|
paths-ignore:
|
|
- "examples/**"
|
|
- "bench/**"
|
|
- "README.*"
|
|
- "LICENSE"
|
|
- ".vscode"
|
|
- ".devcontainer"
|
|
pull_request:
|
|
branches: [main]
|
|
paths-ignore:
|
|
- "examples/**"
|
|
- "bench/**"
|
|
- README.*
|
|
|
|
env:
|
|
REGISTRY: ghcr.io
|
|
IMAGE_NAME: ${{ github.repository }}
|
|
TEST_TAG: bun-test'
|
|
|
|
jobs:
|
|
e2e:
|
|
runs-on: self-hosted
|
|
name: "Integration tests"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Checkout submodules
|
|
run: git -c submodule."src/javascript/jsc/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j 8
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
- name: Login to Dockerhub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
|
- name: Pull Base Image
|
|
run: bash .docker/pull.sh
|
|
- name: Build tests
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
target: test_base
|
|
tags: bun-test:latest
|
|
load: true
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
- name: Run test-with-hmr
|
|
env:
|
|
BUN_TEST_NAME: test-with-hmr
|
|
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
|
|
RUNNER_TEMP: ${RUNNER_TEMP}
|
|
run: bash .docker/runner.sh
|
|
- name: Run test-no-hmr
|
|
env:
|
|
BUN_TEST_NAME: test-no-hmr
|
|
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
|
|
RUNNER_TEMP: ${RUNNER_TEMP}
|
|
run: bash .docker/runner.sh
|
|
- name: Run test-bun-create-next
|
|
env:
|
|
RUNNER_TEMP: ${RUNNER_TEMP}
|
|
BUN_TEST_NAME: test-create-next
|
|
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
|
|
run: bash .docker/runner.sh
|
|
- name: Run test-bun-create-react
|
|
env:
|
|
RUNNER_TEMP: ${RUNNER_TEMP}
|
|
BUN_TEST_NAME: test-create-react
|
|
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
|
|
run: bash .docker/runner.sh
|
|
- name: Run test-bun-run
|
|
env:
|
|
RUNNER_TEMP: ${RUNNER_TEMP}
|
|
BUN_TEST_NAME: test-bun-run
|
|
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
|
|
run: bash .docker/runner.sh
|
|
- name: Run test-bun-install
|
|
env:
|
|
RUNNER_TEMP: ${RUNNER_TEMP}
|
|
BUN_TEST_NAME: test-bun-install
|
|
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
|
|
run: bash .docker/runner.sh
|
|
# This is commented out because zig test does not work on the CI
|
|
# Which sucks
|
|
# zig-unit-tests:
|
|
# runs-on: self-hosted
|
|
# name: "Unit tests (Zig)"
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v2
|
|
# - name: Checkout submodules
|
|
# run: git -c submodule."src/javascript/jsc/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j 8
|
|
# - name: Set up Docker Buildx
|
|
# uses: docker/setup-buildx-action@v1
|
|
# - name: Login to Dockerhub
|
|
# uses: docker/login-action@v1
|
|
# with:
|
|
# username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
# password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
|
# - name: Pull Base Image
|
|
# run: bash .docker/pull.sh
|
|
# - name: Build tests
|
|
# uses: docker/build-push-action@v2
|
|
# with:
|
|
# context: .
|
|
# target: build_unit
|
|
# tags: bun-unit-tests:latest
|
|
# load: true
|
|
# cache-from: type=gha
|
|
# cache-to: type=gha,mode=max
|
|
# builder: ${{ steps.buildx.outputs.name }}
|
|
# - name: Run tests
|
|
# env:
|
|
# GITHUB_WORKSPACE: $GITHUB_WORKSPACE
|
|
# RUNNER_TEMP: ${RUNNER_TEMP}
|
|
# run: bash .docker/unit-tests.sh
|
|
release:
|
|
runs-on: self-hosted
|
|
needs: ["e2e"]
|
|
if: github.ref == 'refs/heads/main'
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Checkout submodules
|
|
run: git -c submodule."src/javascript/jsc/WebKit".update=none submodule update --init --recursive --depth=1 --progress -j 8
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Login to DockerHub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: jarredsumner
|
|
password: ${{ secrets.DOCKERHUB_ALT }}
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
with:
|
|
install: true
|
|
- name: Pull Base Image
|
|
run: bash .docker/pull.sh
|
|
- name: Build release image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
target: release
|
|
tags: |
|
|
ghcr.io/jarred-sumner/bun:${{github.sha}}
|
|
ghcr.io/jarred-sumner/bun:edge
|
|
jarredsumner/bun:${{github.sha}}
|
|
jarredsumner/bun:edge
|
|
platforms: |
|
|
linux/amd64
|
|
labels: |
|
|
org.opencontainers.image.title=bun
|
|
org.opencontainers.image.description=bun is a fast bundler, transpiler, JavaScript Runtime environment and package manager for web software. The image is an Ubuntu 20.04 image with bun preinstalled into /opt/bun.
|
|
org.opencontainers.image.vendor=bun
|
|
org.opencontainers.image.source=https://github.com/Jarred-Sumner/bun
|
|
org.opencontainers.image.url=https://bun.sh
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
push: true
|