diff options
author | 2021-12-26 01:40:37 -0800 | |
---|---|---|
committer | 2021-12-26 01:40:37 -0800 | |
commit | 536d6ab302d537af2627f4837ec9ad0b5337dbf2 (patch) | |
tree | 48122eb3c00bd81745efb7144d6a8b2e44a6a23f /Dockerfile | |
parent | 99446ffa8a434ae1609898de529620c91aef7f68 (diff) | |
download | bun-536d6ab302d537af2627f4837ec9ad0b5337dbf2.tar.gz bun-536d6ab302d537af2627f4837ec9ad0b5337dbf2.tar.zst bun-536d6ab302d537af2627f4837ec9ad0b5337dbf2.zip |
github actions (#91)
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update Dockerfile
* switch
* :hushed:
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* wip
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* cache is broken
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* Update bun.yml
* bust it
* Update Dockerfile
* jm
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update Dockerfile
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* wip
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* Update Makefile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* pass executablePath
* alright
* Update Makefile
* Update Dockerfile
* Update Dockerfile
* Update Makefile
* Update Makefile
* Update Dockerfile
* lets try that
* Update Dockerfile
* Update bun.yml
* hm
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* not interactive
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* simplify this
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* missing
* Update Dockerfile
* Update Dockerfile
* wrong dir
* Update Dockerfile
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* Update bun.yml
* ordering
* Update Dockerfile
* Update bun.yml
* run-test file
* pass github workspace
* hm
* Update bun.yml
* copy the file
* Update run-test.sh
* Update bun.yml
* Update bun.yml
* Update bun.yml
* try this way
* Update bun.yml
* maybe?
* Update bun.yml
* maybe taht's it?
* maybe this
* cache
* up
* Update bun.yml
* Update bun.yml
* try this one i guess
* okay that might do it
* Update Dockerfile
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update chrome.json
* Update chrome.json
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* hm
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* fix caching I think
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* Update bun.yml
* maybe
* Update bun.yml
* fixup
* Update bun.yml
* Update bun.yml
* Update bun.yml
* maybe this time
* Update bun.yml
* Update Dockerfile
* random name
* ok
* explicit runner
* Update bun.yml
* Update bun.yml
* try deleting the files so the layer caching doesn't happen
* :runner:
* Update bun.yml
* Update bun.yml
* Update Dockerfile
* Update Dockerfile
* Update Dockerfile
* Dockerfile.base
* node.js
* Update bun.yml
* Update Dockerfile
* Update Dockerfile.base
* cleanup
Diffstat (limited to 'Dockerfile')
-rw-r--r-- | Dockerfile | 415 |
1 files changed, 199 insertions, 216 deletions
diff --git a/Dockerfile b/Dockerfile index a37a78d90..538e0ccc5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,194 +1,194 @@ -FROM ubuntu:20.04 as base +FROM bunbunbunbun/bun-base:latest as mimalloc + ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -RUN apt-get update && apt-get install --no-install-recommends -y wget gnupg2 curl lsb-release wget software-properties-common - -RUN add-apt-repository ppa:longsleep/golang-backports -RUN curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - - -RUN wget https://apt.llvm.org/llvm.sh --no-check-certificate -RUN chmod +x llvm.sh -RUN ./llvm.sh 12 - -RUN apt-get update && apt-get install --no-install-recommends -y \ - ca-certificates \ - curl \ - gnupg2 \ - software-properties-common \ - cmake \ - build-essential \ - git \ - libssl-dev \ - ruby \ - liblld-12-dev \ - libclang-12-dev \ - nodejs \ - gcc \ - g++ \ - npm \ - clang-12 \ - clang-format-12 \ - libc++-12-dev \ - libc++abi-12-dev \ - lld-12 \ - libicu-dev \ - wget \ - unzip \ - tar \ - golang-go chromium-browser ninja-build pkg-config automake autoconf libtool curl - -RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang-12 90 && \ - update-alternatives --install /usr/bin/cpp cpp /usr/bin/clang++-12 90 && \ - update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-12 90 - -ENV CC=clang-12 -ENV CXX=clang++-12 - -WORKDIR /home/ubuntu -ARG BUILDARCH -ENV ARCH "$BUILDARCH" - -RUN npm install -g esbuild - -RUN curl -L https://github.com/Jarred-Sumner/zig/releases/download/dec20/zig-linux-$BUILDARCH.zip > zig-linux-$BUILDARCH.zip; \ - unzip -q zig-linux-$BUILDARCH.zip; \ - rm zig-linux-$BUILDARCH.zip; - - -ENV WEBKIT_OUT_DIR /home/ubuntu/bun-webkit - -WORKDIR /home/ubuntu - -ENV PATH "/home/ubuntu/zig:$PATH" -ENV JSC_BASE_DIR $WEBKIT_OUT_DIR -ENV LIB_ICU_PATH /home/ubuntu/icu/source/lib -ENV BUN_RELEASE_DIR /home/ubuntu/bun-release -ENV BUN_DEPS_OUT_DIR /home/ubuntu/bun-deps +COPY Makefile ${BUN_DIR}/Makefile +COPY src/deps/mimalloc ${BUN_DIR}/src/deps/mimalloc -RUN mkdir -p $BUN_RELEASE_DIR $BUN_DEPS_OUT_DIR /home/ubuntu/bun +RUN cd ${BUN_DIR} && \ + make mimalloc && rm -rf src/deps/mimalloc Makefile -FROM base as base_with_zig_and_webkit +FROM bunbunbunbun/bun-base:latest as zlib -WORKDIR /home/ubuntu +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -RUN curl -L https://github.com/Jarred-Sumner/WebKit/releases/download/Bun-v0/bun-webkit-linux-$BUILDARCH.tar.gz > bun-webkit-linux-$BUILDARCH.tar.gz; \ - tar -xzf bun-webkit-linux-$BUILDARCH.tar.gz; \ - rm bun-webkit-linux-$BUILDARCH.tar.gz && cat $WEBKIT_OUT_DIR/include/cmakeconfig.h > /dev/null +COPY Makefile ${BUN_DIR}/Makefile +COPY src/deps/zlib ${BUN_DIR}/src/deps/zlib -RUN curl -L https://github.com/unicode-org/icu/releases/download/release-66-1/icu4c-66_1-src.tgz > icu4c-66_1-src.tgz && \ - tar -xzf icu4c-66_1-src.tgz && \ - rm icu4c-66_1-src.tgz && \ - cd icu/source && \ - ./configure --enable-static --disable-shared && \ - make -j$(nproc) +WORKDIR $BUN_DIR +RUN cd $BUN_DIR && \ + make zlib && rm -rf src/deps/zlib Makefile -WORKDIR /home/ubuntu/bun +FROM bunbunbunbun/bun-base:latest as libarchive -FROM base as mimalloc +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -WORKDIR /home/ubuntu/bun -COPY Makefile /home/ubuntu/bun/Makefile -COPY src/deps/mimalloc /home/ubuntu/bun/src/deps/mimalloc +COPY Makefile ${BUN_DIR}/Makefile +COPY src/deps/libarchive ${BUN_DIR}/src/deps/libarchive -RUN make mimalloc +WORKDIR $BUN_DIR -FROM base as zlib +RUN cd $BUN_DIR && \ + make libarchive && rm -rf src/deps/libarchive Makefile -WORKDIR /home/ubuntu/bun -COPY Makefile /home/ubuntu/bun/Makefile -COPY src/deps/zlib /home/ubuntu/bun/src/deps/zlib +FROM bunbunbunbun/bun-base:latest as boringssl -RUN make zlib +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -FROM base as libarchive +COPY Makefile ${BUN_DIR}/Makefile +COPY src/deps/boringssl ${BUN_DIR}/src/deps/boringssl -WORKDIR /home/ubuntu/bun -COPY Makefile /home/ubuntu/bun/Makefile -COPY src/deps/libarchive /home/ubuntu/bun/src/deps/libarchive +WORKDIR $BUN_DIR -RUN make libarchive +RUN cd $BUN_DIR && \ + make boringssl && rm -rf src/deps/boringssl Makefile -FROM base as boringssl +FROM bunbunbunbun/bun-base:latest as picohttp -WORKDIR /home/ubuntu/bun -COPY Makefile /home/ubuntu/bun/Makefile -COPY src/deps/boringssl /home/ubuntu/bun/src/deps/boringssl +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -RUN make boringssl +COPY Makefile ${BUN_DIR}/Makefile +COPY src/deps/picohttpparser ${BUN_DIR}/src/deps/picohttpparser +COPY src/deps/*.c ${BUN_DIR}/src/deps +COPY src/deps/*.h ${BUN_DIR}/src/deps -FROM base as picohttp +WORKDIR $BUN_DIR -WORKDIR /home/ubuntu/bun -COPY Makefile /home/ubuntu/bun/Makefile -COPY src/deps/picohttpparser /home/ubuntu/bun/src/deps/picohttpparser -COPY src/deps/*.c /home/ubuntu/bun/src/deps -COPY src/deps/*.h /home/ubuntu/bun/src/deps +RUN cd $BUN_DIR && \ + make picohttp -RUN make picohttp +FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as identifier_cache -FROM base_with_zig_and_webkit as identifier_cache +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -WORKDIR /home/ubuntu/bun -COPY Makefile /home/ubuntu/bun/Makefile -COPY src/js_lexer/identifier_data.zig /home/ubuntu/bun/src/js_lexer/identifier_data.zig -COPY src/js_lexer/identifier_cache.zig /home/ubuntu/bun/src/js_lexer/identifier_cache.zig +WORKDIR $BUN_DIR -RUN make identifier-cache +COPY Makefile ${BUN_DIR}/Makefile +COPY src/js_lexer/identifier_data.zig ${BUN_DIR}/src/js_lexer/identifier_data.zig +COPY src/js_lexer/identifier_cache.zig ${BUN_DIR}/src/js_lexer/identifier_cache.zig -FROM base as node_fallbacks +RUN cd $BUN_DIR && \ + make identifier-cache && rm -rf zig-cache Makefile -WORKDIR /home/ubuntu/bun -COPY Makefile /home/ubuntu/bun/Makefile -COPY src/node-fallbacks /home/ubuntu/bun/src/node-fallbacks -RUN make node-fallbacks +FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as node_fallbacks -FROM base_with_zig_and_webkit as build_dependencies +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -WORKDIR /home/ubuntu/bun +WORKDIR $BUN_DIR -ENV BUN_DEPS_OUT_DIR /home/ubuntu/bun-deps -COPY ./src /home/ubuntu/bun/src -COPY ./build.zig /home/ubuntu/bun/build.zig -COPY ./completions /home/ubuntu/bun/completions -COPY ./packages /home/ubuntu/bun/packages -COPY ./build-id /home/ubuntu/bun/build-id -COPY ./package.json /home/ubuntu/bun/package.json -COPY ./misctools /home/ubuntu/bun/misctools -COPY Makefile /home/ubuntu/bun/Makefile +COPY Makefile ${BUN_DIR}/Makefile +COPY src/node-fallbacks ${BUN_DIR}/src/node-fallbacks +RUN cd $BUN_DIR && \ + make node-fallbacks && rm -rf src/node-fallbacks/node_modules Makefile -COPY --from=mimalloc /home/ubuntu/bun-deps/*.o /home/ubuntu/bun-deps -COPY --from=libarchive /home/ubuntu/bun-deps/*.a /home/ubuntu/bun-deps -COPY --from=picohttp /home/ubuntu/bun-deps/*.o /home/ubuntu/bun-deps -COPY --from=boringssl /home/ubuntu/bun-deps/*.a /home/ubuntu/bun-deps -COPY --from=zlib /home/ubuntu/bun-deps/*.a /home/ubuntu/bun-deps -COPY --from=node_fallbacks /home/ubuntu/bun/src/node-fallbacks /home/ubuntu/bun/src/node-fallbacks -COPY --from=identifier_cache /home/ubuntu/bun/src/js_lexer/*.blob /home/ubuntu/bun/src/js_lexer/ +FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as build_release -RUN make \ +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun + + +WORKDIR $BUN_DIR + +COPY ./src ${BUN_DIR}/src +COPY ./build.zig ${BUN_DIR}/build.zig +COPY ./completions ${BUN_DIR}/completions +COPY ./packages ${BUN_DIR}/packages +COPY ./build-id ${BUN_DIR}/build-id +COPY ./package.json ${BUN_DIR}/package.json +COPY ./misctools ${BUN_DIR}/misctools +COPY Makefile ${BUN_DIR}/Makefile + +COPY --from=mimalloc ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/ +COPY --from=libarchive ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ +COPY --from=picohttp ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/ +COPY --from=boringssl ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ +COPY --from=zlib ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ +COPY --from=identifier_cache ${BUN_DIR}/src/js_lexer/*.blob ${BUN_DIR}/src/js_lexer + +RUN cd $BUN_DIR && rm -rf $HOME/.cache zig-cache && make \ jsc-bindings-headers \ api \ analytics \ bun_error \ - fallback_decoder + fallback_decoder && rm -rf $HOME/.cache zig-cache && \ + mkdir -p $BUN_RELEASE_DIR && \ + make release copy-to-bun-release-dir && \ + rm -rf $HOME/.cache zig-cache misctools package.json build-id completions build.zig -FROM build_dependencies as build_release +FROM bunbunbunbun/bun-base-with-zig-and-webkit:latest as bun.devcontainer -WORKDIR /home/ubuntu/bun - -ENV BUN_RELEASE_DIR /home/ubuntu/bun-release - -RUN mkdir -p $BUN_RELEASE_DIR; make release \ - copy-to-bun-release-dir +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/workspaces +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -FROM base_with_zig_and_webkit as bun.devcontainer -ENV WEBKIT_OUT_DIR /home/ubuntu/bun-webkit -ENV PATH "/home/ubuntu/zig:$PATH" +ENV WEBKIT_OUT_DIR ${WEBKIT_DIR} +ENV PATH "$ZIG_PATH:$PATH" ENV JSC_BASE_DIR $WEBKIT_OUT_DIR ENV LIB_ICU_PATH /home/ubuntu/icu/source/lib -ENV BUN_RELEASE_DIR /home/ubuntu/bun-release +ENV BUN_RELEASE_DIR ${BUN_RELEASE_DIR} ENV PATH "/workspaces/bun/packages/bun-linux-x64:/workspaces/bun/packages/bun-linux-aarch64:/workspaces/bun/packages/debug-bun-linux-x64:/workspaces/bun/packages/debug-bun-linux-aarch64:$PATH" ENV PATH "/home/ubuntu/zls/zig-out/bin:$PATH" @@ -202,91 +202,74 @@ COPY .devcontainer/zls.json /workspaces/workspace.code-workspace COPY .devcontainer/limits.conf /etc/security/limits.conf COPY ".devcontainer/scripts/" /scripts/ COPY ".devcontainer/scripts/getting-started.sh" /workspaces/getting-started.sh -RUN mkdir -p /home/ubuntu/.bun /home/ubuntu/.config /workspaces/bun && bash /scripts/common-debian.sh && bash /scripts/github.sh && bash /scripts/nice.sh && bash /scripts/zig-env.sh +RUN mkdir -p /home/ubuntu/.bun /home/ubuntu/.config /workspaces/bun && \ + bash /scripts/common-debian.sh && \ + bash /scripts/github.sh && \ + bash /scripts/nice.sh && \ + bash /scripts/zig-env.sh COPY .devcontainer/zls.json /home/ubuntu/.config/zls.json -FROM ubuntu:20.04 as test_base +FROM ubuntu:20.04 as release ARG DEBIAN_FRONTEND=noninteractive -ENV DEBIAN_FRONTEND=noninteractive - -ENV CI 1 -ENV NPM_CLIENT bun -ENV PATH "/home/ubuntu/bun/packages/bun-linux-x64:/home/ubuntu/bun/packages/bun-linux-aarch64:$PATH" - -# All this is necessary because Ubuntu decided to use snap for their Chromium packages -# Which breaks using Chrome in the container on aarch64 -RUN apt-get update && \ - apt-get install -y wget gnupg2 curl make git unzip nodejs npm psmisc && \ - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517 && \ - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 && \ - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50 && \ - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A - -COPY ./integration /home/ubuntu/bun/integration -COPY Makefile /home/ubuntu/bun/Makefile -COPY package.json /home/ubuntu/bun/package.json - -# We don't want to worry about architecture differences in this image -COPY --from=release /opt/bun/bin/bun /home/ubuntu/bun/packages/bun-linux-aarch64/bun -COPY --from=release /opt/bun/bin/bun /home/ubuntu/bun/packages/bun-linux-x64/bun +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -FROM test_base as test_create_next - -WORKDIR /home/ubuntu/bun -CMD make test-create-next - -FROM test_base as test_create_react - -WORKDIR /home/ubuntu/bun -CMD make test-create-react - - -FROM test_base as test_bun_run - -WORKDIR /home/ubuntu/bun -CMD make test-bun-run - -FROM test_base as browser_test_base - -COPY .docker/chromium.pref /etc/apt/preferences.d/chromium.pref -COPY .docker/debian.list /etc/apt/sources.list.d/debian.list +COPY .devcontainer/limits.conf /etc/security/limits.conf -RUN apt-get update && \ - apt-get install -y --no-install-recommends chromium +ENV BUN_INSTALL /opt/bun +ENV PATH "/opt/bun/bin:$PATH" +ARG BUILDARCH=amd64 +LABEL org.opencontainers.image.title="Bun ${BUILDARCH} (glibc)" +LABEL org.opencontainers.image.source=https://github.com/jarred-sumner/bun +COPY --from=build_release ${BUN_RELEASE_DIR}/bun /opt/bun/bin/bun +WORKDIR /opt/bun +ENTRYPOINT [ "/opt/bun/bin/bun" ] -WORKDIR /home/ubuntu/bun -RUN mkdir -p /var/run/dbus && ln -s /usr/bin/chromium /usr/bin/chromium-browser -RUN apt-get install -y make fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 xvfb ca-certificates fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils --no-install-recommends +FROM bunbunbunbun/bun-test-base as test_base +ARG DEBIAN_FRONTEND=noninteractive +ARG GITHUB_WORKSPACE=/build +ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig +# Directory extracts to "bun-webkit" +ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit +ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release +ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps +ARG BUN_DIR=${GITHUB_WORKSPACE}/bun -FROM browser_test_base as test_hmr +ARG BUILDARCH=amd64 +RUN groupadd -r chromium && useradd -d ${BUN_DIR} -M -r -g chromium -G audio,video chromium \ + && mkdir -p /home/chromium/Downloads && chown -R chromium:chromium /home/chromium -WORKDIR /home/ubuntu/bun -CMD dbus-daemon --system &> /dev/null && \ - bun install --cwd /home/ubuntu/bun/integration/snippets && \ - bun install --cwd /home/ubuntu/bun/integration/scripts && \ - bun install && \ - make test-hmr-hmr +USER chromium +WORKDIR $BUN_DIR -FROM browser_test_base as test_no_hmr +ENV NPM_CLIENT bun +ENV PATH "${BUN_DIR}/packages/bun-linux-x64:${BUN_DIR}/packages/bun-linux-aarch64:$PATH" +ENV CI 1 +ENV BROWSER_EXECUTABLE /usr/bin/chromium -WORKDIR /home/ubuntu/bun -CMD dbus-daemon --system &> /dev/null && \ - bun install --cwd /home/ubuntu/bun/integration/snippets && \ - bun install --cwd /home/ubuntu/bun/integration/scripts && \ - bun install && \ - make test-no-hmr +COPY ./integration ${BUN_DIR}/integration +COPY Makefile ${BUN_DIR}/Makefile +COPY package.json ${BUN_DIR}/package.json +COPY .docker/run-test.sh ${BUN_DIR}/run-test.sh +COPY ./bun.lockb ${BUN_DIR}/bun.lockb -FROM ubuntu:20.04 as release +# # We don't want to worry about architecture differences in this image +COPY --from=release /opt/bun/bin/bun ${BUN_DIR}/packages/bun-linux-aarch64/bun +COPY --from=release /opt/bun/bin/bun ${BUN_DIR}/packages/bun-linux-x64/bun -COPY --from=build_release /home/ubuntu/bun-release/bun /opt/bun/bin/bun -COPY .devcontainer/limits.conf /etc/security/limits.conf +USER root +RUN chgrp -R chromium ${BUN_DIR} && chmod g+rwx ${BUN_DIR} && chown -R chromium:chromium ${BUN_DIR} +USER chromium -ENV BUN_INSTALL /opt/bun -ENV PATH "/opt/bun/bin:$PATH" +CMD [ "bash", ".run-test.sh" ] -LABEL org.opencontainers.image.title="Bun ${BUILDARCH} (glibc)" -LABEL org.opencontainers.image.source=https://github.com/jarred-sumner/bun
\ No newline at end of file +FROM release
\ No newline at end of file |