From 00d28e09c0012ed98f9129246789941575c0f8b4 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:10:57 -0700 Subject: [PATCH 01/21] New build workflow --- .github/workflows/bun-build.yml | 97 +++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 .github/workflows/bun-build.yml diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml new file mode 100644 index 0000000000..9ad04aa485 --- /dev/null +++ b/.github/workflows/bun-build.yml @@ -0,0 +1,97 @@ +name: bun-build + +concurrency: + group: bun-build-${{ github.ref || github.run_id }} + cancel-in-progress: true + +on: [push] + # push: + # branches: + # - main + # - ci/* + # paths: + # # Build files + # # Source files + # - "src/**/*" + # - "packages/{bun-usockets,bun-uws}/src/**/*" + # pull_request: + # branches: + # - main + # paths: + # # Build files + # - "a" + # # Source files + # - "src/**/*" + # - "packages/{bun-usockets,bun-uws}/src/**/*" + # workflow_dispatch: {} + +permissions: + contents: read + +jobs: + build: + name: Build (${{ matrix.id }}) + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: + include: + - id: linux-x64 + runner: ubuntu-latest + runs-on: ${{ matrix.runner }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + - name: Restore Cache + uses: actions/cache@v3 + with: + key: ${{ runner.os }}-build-${{ matrix.id }} + path: build + - name: Build + run: | + apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + ca-certificates \ + curl \ + wget \ + && echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list \ + && echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list \ + && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \ + && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \ + && apt-get install -qq --no-install-recommends \ + lsb-release \ + software-properties-common \ + gnupg \ + gnupg1 \ + gnupg2 \ + cmake \ + file \ + git \ + gnupg \ + libc-dev \ + libxml2 \ + libxml2-dev \ + make \ + ninja-build \ + perl \ + python3 \ + rsync \ + ruby \ + unzip \ + clang-16 \ + lld-16 \ + lldb-16 \ + clangd-16 \ + xz-utils \ + bash \ + tar \ + gzip \ + ccache \ + nodejs \ + && npm install -g esbuild \ + && npm install -g bun \ + && bun run build + && ls + && ls build From a3381ee9b92a9ba3cc7e8192d658442d759bdadf Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:13:09 -0700 Subject: [PATCH 02/21] Fix script --- .github/workflows/bun-build.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 9ad04aa485..637c0151c1 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -51,16 +51,16 @@ jobs: path: build - name: Build run: | - apt-get update -qq \ - && apt-get install -qq --no-install-recommends \ + apt-get update -qq + apt-get install -qq --no-install-recommends \ ca-certificates \ curl \ - wget \ - && echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list \ - && echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list \ - && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \ - && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \ - && apt-get install -qq --no-install-recommends \ + wget + echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list + echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - + curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - + apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ gnupg \ @@ -89,9 +89,9 @@ jobs: tar \ gzip \ ccache \ - nodejs \ - && npm install -g esbuild \ - && npm install -g bun \ - && bun run build - && ls - && ls build + nodejs + npm install -g esbuild + npm install -g bun + bun run build + ls + ls build From 43cc370c9e484b9eb50fdc2b46944c830c269e07 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:20:15 -0700 Subject: [PATCH 03/21] Use sudo --- .github/workflows/bun-build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 637c0151c1..4d09518513 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -51,16 +51,16 @@ jobs: path: build - name: Build run: | - apt-get update -qq - apt-get install -qq --no-install-recommends \ + sudo apt-get update -qq + sudo apt-get install -qq --no-install-recommends \ ca-certificates \ curl \ wget echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - - apt-get install -qq --no-install-recommends \ + sudo apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ gnupg \ From c5a4060df37876c22e87f295089f48fc84d0447f Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:24:38 -0700 Subject: [PATCH 04/21] More sudo --- .github/workflows/bun-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 4d09518513..aa2aedc3ed 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -56,8 +56,8 @@ jobs: ca-certificates \ curl \ wget - echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list - echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list + sudo echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list + sudo echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - sudo apt-get install -qq --no-install-recommends \ From 8536313906aa65dfa54a09749a6f5d06c624fcbf Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:34:04 -0700 Subject: [PATCH 05/21] Tweak dependencies --- .github/workflows/bun-build.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index aa2aedc3ed..a73a1c0206 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -52,14 +52,6 @@ jobs: - name: Build run: | sudo apt-get update -qq - sudo apt-get install -qq --no-install-recommends \ - ca-certificates \ - curl \ - wget - sudo echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list - sudo echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - sudo apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ @@ -68,7 +60,6 @@ jobs: gnupg2 \ cmake \ file \ - git \ gnupg \ libc-dev \ libxml2 \ @@ -85,11 +76,9 @@ jobs: lldb-16 \ clangd-16 \ xz-utils \ - bash \ tar \ gzip \ - ccache \ - nodejs + ccache npm install -g esbuild npm install -g bun bun run build From 35bb6bf2cf4d89eab163caa51b26efc7151c71ec Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:41:04 -0700 Subject: [PATCH 06/21] Another sudo attempt --- .github/workflows/bun-build.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index a73a1c0206..c457b1897b 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -51,8 +51,13 @@ jobs: path: build - name: Build run: | - sudo apt-get update -qq - sudo apt-get install -qq --no-install-recommends \ + sudo su - + apt-get update -qq + echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list + echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - + curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - + apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ gnupg \ @@ -60,6 +65,7 @@ jobs: gnupg2 \ cmake \ file \ + git \ gnupg \ libc-dev \ libxml2 \ @@ -76,9 +82,11 @@ jobs: lldb-16 \ clangd-16 \ xz-utils \ + bash \ tar \ gzip \ - ccache + ccache \ + nodejs npm install -g esbuild npm install -g bun bun run build From 47f3ace5976a31da2f68bd9cf1d08d0a8247ca9a Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:56:49 -0700 Subject: [PATCH 07/21] Tweak script --- .github/workflows/bun-build.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index c457b1897b..dd5cb148b3 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -51,12 +51,8 @@ jobs: path: build - name: Build run: | - sudo su - - apt-get update -qq - echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list - echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - - curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - + sudo apt-get update -qq + curl -s https://apt.llvm.org/llvm.sh | sudo bash /dev/stdin "16.0" apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ @@ -65,7 +61,6 @@ jobs: gnupg2 \ cmake \ file \ - git \ gnupg \ libc-dev \ libxml2 \ @@ -82,7 +77,6 @@ jobs: lldb-16 \ clangd-16 \ xz-utils \ - bash \ tar \ gzip \ ccache \ From 560e5f994869bb9fe5bf390a72699453ba04b045 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 18 Oct 2023 18:58:08 -0700 Subject: [PATCH 08/21] 16.0 -> 16 --- .github/workflows/bun-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index dd5cb148b3..4a9fe4134f 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -52,7 +52,7 @@ jobs: - name: Build run: | sudo apt-get update -qq - curl -s https://apt.llvm.org/llvm.sh | sudo bash /dev/stdin "16.0" + curl -s https://apt.llvm.org/llvm.sh | sudo bash /dev/stdin "16" apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ From f9b7c24015865778f6d591a880118dad62d5c0c2 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 11:05:42 -0700 Subject: [PATCH 09/21] Tweak script --- .github/workflows/bun-build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 4a9fe4134f..a3138e1dba 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -52,7 +52,9 @@ jobs: - name: Build run: | sudo apt-get update -qq - curl -s https://apt.llvm.org/llvm.sh | sudo bash /dev/stdin "16" + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + sudo ./llvm.sh 16 apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ From 5af35fbbcb4849da65ee59df8375db1a5cf0961b Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 13:51:43 -0700 Subject: [PATCH 10/21] Tweak script --- .github/workflows/bun-build.yml | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index a3138e1dba..52e5b4cc06 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -49,12 +49,21 @@ jobs: with: key: ${{ runner.os }}-build-${{ matrix.id }} path: build - - name: Build + - name: Setup LLVM + uses: KyleMayes/install-llvm-action@v1 + with: + version: "16" + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: "20" + - name: Setup Bun + uses: oven-sh/setup-bun@v1 + with: + bun-version: latest + - name: Setup APT run: | sudo apt-get update -qq - wget https://apt.llvm.org/llvm.sh - chmod +x llvm.sh - sudo ./llvm.sh 16 apt-get install -qq --no-install-recommends \ lsb-release \ software-properties-common \ @@ -74,17 +83,11 @@ jobs: rsync \ ruby \ unzip \ - clang-16 \ - lld-16 \ - lldb-16 \ - clangd-16 \ xz-utils \ tar \ gzip \ - ccache \ - nodejs - npm install -g esbuild - npm install -g bun + ccache + bun install -g esbuild bun run build ls ls build From 55444cc434a7d353fde12f969cea28dc4e057745 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 13:58:21 -0700 Subject: [PATCH 11/21] Tweak script --- .github/workflows/bun-build.yml | 52 +++++++++++++++++---------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 52e5b4cc06..871bca15c0 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -49,6 +49,32 @@ jobs: with: key: ${{ runner.os }}-build-${{ matrix.id }} path: build + - name: Setup APT + uses: awalsh128/cache-apt-pkgs-action@latest + with: + version: "1" # increment when packages change + packages: | + make + cmake + ccache + ninja-build + lsb-release + software-properties-common + gnupg + gnupg1 + gnupg2 + file + libc-dev + libxml2 + libxml2-dev + rsync + unzip + xz-utils + tar + gzip + perl + python3 + ruby - name: Setup LLVM uses: KyleMayes/install-llvm-action@v1 with: @@ -61,32 +87,8 @@ jobs: uses: oven-sh/setup-bun@v1 with: bun-version: latest - - name: Setup APT + - name: Build run: | - sudo apt-get update -qq - apt-get install -qq --no-install-recommends \ - lsb-release \ - software-properties-common \ - gnupg \ - gnupg1 \ - gnupg2 \ - cmake \ - file \ - gnupg \ - libc-dev \ - libxml2 \ - libxml2-dev \ - make \ - ninja-build \ - perl \ - python3 \ - rsync \ - ruby \ - unzip \ - xz-utils \ - tar \ - gzip \ - ccache bun install -g esbuild bun run build ls From 93f530c0ba10c8babbb3ace1781663f4da313303 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 14:01:09 -0700 Subject: [PATCH 12/21] Tweak script --- .github/workflows/bun-build.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 871bca15c0..5152cc4d12 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -58,23 +58,6 @@ jobs: cmake ccache ninja-build - lsb-release - software-properties-common - gnupg - gnupg1 - gnupg2 - file - libc-dev - libxml2 - libxml2-dev - rsync - unzip - xz-utils - tar - gzip - perl - python3 - ruby - name: Setup LLVM uses: KyleMayes/install-llvm-action@v1 with: From ef5c2a29e783dd0c668b934bae5beb734f906866 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 14:08:40 -0700 Subject: [PATCH 13/21] Tweak script --- .github/workflows/bun-build.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 5152cc4d12..5ca67990f8 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -1,5 +1,8 @@ name: bun-build +env: + ZIG_VERSION: 0.12.0-dev.888+130227491 + concurrency: group: bun-build-${{ github.ref || github.run_id }} cancel-in-progress: true @@ -48,7 +51,8 @@ jobs: uses: actions/cache@v3 with: key: ${{ runner.os }}-build-${{ matrix.id }} - path: build + path: | + build - name: Setup APT uses: awalsh128/cache-apt-pkgs-action@latest with: @@ -58,6 +62,10 @@ jobs: cmake ccache ninja-build + - name: Setup Zig + uses: goto-bus-stop/setup-zig@v2 + with: + version: ${{ env.ZIG_VERSION }} - name: Setup LLVM uses: KyleMayes/install-llvm-action@v1 with: @@ -70,9 +78,11 @@ jobs: uses: oven-sh/setup-bun@v1 with: bun-version: latest - - name: Build + - name: Setup Dependencies run: | bun install -g esbuild + - name: Build + run: | bun run build ls ls build From aed8be20ec1dcaf94821206e63de7bea029387aa Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 14:13:50 -0700 Subject: [PATCH 14/21] bun install --- .github/workflows/bun-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index 5ca67990f8..cd1a4fea9c 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -80,6 +80,7 @@ jobs: bun-version: latest - name: Setup Dependencies run: | + bun install bun install -g esbuild - name: Build run: | From 7055728cfbc825e3ea6b48fef2c0de433986e3c9 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 14:21:24 -0700 Subject: [PATCH 15/21] ssh into github actions --- .github/workflows/bun-build.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index cd1a4fea9c..e3469d2adb 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -82,8 +82,7 @@ jobs: run: | bun install bun install -g esbuild - - name: Build - run: | - bun run build - ls - ls build + - name: Setup upterm session + uses: lhotari/action-upterm@v1 + with: + limit-access-to-users: Electroid From 4351966b5d03913654c129560ed59dc8710a8819 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 14:33:03 -0700 Subject: [PATCH 16/21] add more to ssh --- .github/workflows/bun-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index e3469d2adb..e339f40aa9 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -85,4 +85,4 @@ jobs: - name: Setup upterm session uses: lhotari/action-upterm@v1 with: - limit-access-to-users: Electroid + limit-access-to-users: Electroid,paperdave,Jarred-Sumner From 929c7ae09a7d5fd63527b0a9c88d9e29187fb88a Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 14:50:53 -0700 Subject: [PATCH 17/21] Fix postinstal --- .github/workflows/bun-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index e339f40aa9..e1a458a54c 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -81,6 +81,7 @@ jobs: - name: Setup Dependencies run: | bun install + bash .scripts/postinstall.sh bun install -g esbuild - name: Setup upterm session uses: lhotari/action-upterm@v1 From 0646f106f0fdf7a3a28a05293e85339e2b64f641 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 15:18:57 -0700 Subject: [PATCH 18/21] Skip llvm --- .github/workflows/bun-build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bun-build.yml b/.github/workflows/bun-build.yml index e1a458a54c..97fd2d5c56 100644 --- a/.github/workflows/bun-build.yml +++ b/.github/workflows/bun-build.yml @@ -66,10 +66,10 @@ jobs: uses: goto-bus-stop/setup-zig@v2 with: version: ${{ env.ZIG_VERSION }} - - name: Setup LLVM - uses: KyleMayes/install-llvm-action@v1 - with: - version: "16" + # - name: Setup LLVM + # uses: KyleMayes/install-llvm-action@v1 + # with: + # version: "16" - name: Setup Node.js uses: actions/setup-node@v3 with: From b6527820f33f7d0698c68771e07ed1bd30e467db Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 17:20:06 -0700 Subject: [PATCH 19/21] New dockerfile --- Dockerfile | 747 +++++------------------------------------------------ 1 file changed, 62 insertions(+), 685 deletions(-) diff --git a/Dockerfile b/Dockerfile index 48e2a3255c..e79d42184d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,685 +1,62 @@ -ARG DEBIAN_FRONTEND=noninteractive -ARG GITHUB_WORKSPACE=/build -ARG ZIG_PATH=${GITHUB_WORKSPACE}/zig -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 -ARG CPU_TARGET=native -ARG ARCH=x86_64 -ARG BUILD_MACHINE_ARCH=x86_64 -ARG TRIPLET=${ARCH}-linux-gnu -ARG BUILDARCH=amd64 -ARG WEBKIT_TAG=2023-oct3-2 -ARG ZIG_TAG=jul1 -ARG ZIG_VERSION="0.12.0-dev.899+027aabf49" -ARG WEBKIT_BASENAME="bun-webkit-linux-$BUILDARCH" - -ARG ZIG_FOLDERNAME=zig-linux-${BUILD_MACHINE_ARCH}-${ZIG_VERSION} -ARG ZIG_FILENAME=${ZIG_FOLDERNAME}.tar.xz -ARG WEBKIT_URL="https://github.com/oven-sh/WebKit/releases/download/$WEBKIT_TAG/${WEBKIT_BASENAME}.tar.gz" -ARG ZIG_URL="https://ziglang.org/builds/${ZIG_FILENAME}" -ARG GIT_SHA="" -ARG BUN_BASE_VERSION=1.0 - -FROM bitnami/minideb:bookworm as bun-base - -RUN install_packages ca-certificates curl wget lsb-release software-properties-common gnupg gnupg1 gnupg2 && \ - echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" > /etc/apt/sources.list.d/llvm.list && \ - echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-16 main" >> /etc/apt/sources.list.d/llvm.list && \ - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ - curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && \ - install_packages \ - cmake \ - file \ - git \ - gnupg \ - libc-dev \ - libxml2 \ - libxml2-dev \ - make \ - ninja-build \ - perl \ - python3 \ - rsync \ - ruby \ - unzip \ - clang-16 \ - lld-16 \ - lldb-16 \ - clangd-16 \ - xz-utils \ - bash tar gzip ccache nodejs && \ - npm install -g esbuild - -ENV CXX=clang++-16 -ENV CC=clang-16 - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG BUILDARCH -ARG ZIG_PATH -ARG WEBKIT_URL -ARG ZIG_URL -ARG ZIG_FOLDERNAME -ARG ZIG_FILENAME - -ENV WEBKIT_OUT_DIR=${WEBKIT_DIR} -ENV BUILDARCH=${BUILDARCH} -ENV AR=/usr/bin/llvm-ar-16 -ENV ZIG "${ZIG_PATH}/zig" -ENV PATH="$ZIG/bin:$PATH" -ENV LD=lld-16 - -RUN mkdir -p $BUN_DIR $BUN_DEPS_OUT_DIR - -FROM bun-base as bun-base-with-zig-and-webkit - -WORKDIR $GITHUB_WORKSPACE - -ADD $ZIG_URL . -RUN tar xf ${ZIG_FILENAME} && \ - rm ${ZIG_FILENAME} && mv ${ZIG_FOLDERNAME} zig; - - - -WORKDIR $GITHUB_WORKSPACE - -ARG GITHUB_WORKSPACE -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG BUILDARCH -ARG ZIG_PATH -ARG WEBKIT_URL -ARG ZIG_URL -ARG WEBKIT_BASENAME - -ADD ${WEBKIT_URL} . - -RUN mkdir -p ${WEBKIT_DIR} && cd ${GITHUB_WORKSPACE} && \ - gunzip ${WEBKIT_BASENAME}.tar.gz && tar -xf ${WEBKIT_BASENAME}.tar && \ - cat ${WEBKIT_DIR}/include/cmakeconfig.h > /dev/null - -LABEL org.opencontainers.image.title="bun base image with zig & webkit ${BUILDARCH} (glibc)" -LABEL org.opencontainers.image.source=https://github.com/oven-sh/bun - -FROM bun-base as c-ares - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -ENV CCACHE_DIR=/ccache -ENV JSC_BASE_DIR=${WEBKIT_DIR} -ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/c-ares ${BUN_DIR}/src/deps/c-ares - -WORKDIR $BUN_DIR - -RUN --mount=type=cache,target=/ccache cd $BUN_DIR && make c-ares && rm -rf ${BUN_DIR}/src/deps/c-ares ${BUN_DIR}/Makefile - - -FROM bun-base as lolhtml - -RUN install_packages build-essential && curl https://sh.rustup.rs -sSf | sh -s -- -y - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR - -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/lol-html ${BUN_DIR}/src/deps/lol-html - -ENV CCACHE_DIR=/ccache - -RUN --mount=type=cache,target=/ccache export PATH=$PATH:$HOME/.cargo/bin && export CC=$(which clang-16) && cd ${BUN_DIR} && \ - make lolhtml && rm -rf src/deps/lol-html Makefile - -FROM bun-base as mimalloc - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/mimalloc ${BUN_DIR}/src/deps/mimalloc -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -ENV CCACHE_DIR=/ccache - -RUN --mount=type=cache,target=/ccache cd ${BUN_DIR} && \ - make mimalloc && rm -rf src/deps/mimalloc Makefile - -FROM bun-base as zlib - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/zlib ${BUN_DIR}/src/deps/zlib - -WORKDIR $BUN_DIR - -ENV CCACHE_DIR=/ccache - -RUN --mount=type=cache,target=/ccache cd $BUN_DIR && \ - make zlib && rm -rf src/deps/zlib Makefile - -FROM bun-base as libarchive - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -RUN install_packages autoconf automake libtool pkg-config - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/libarchive ${BUN_DIR}/src/deps/libarchive - -ENV CCACHE_DIR=/ccache -WORKDIR $BUN_DIR - - -RUN --mount=type=cache,target=/ccache cd $BUN_DIR && \ - make libarchive && rm -rf src/deps/libarchive Makefile - - - -FROM bun-base as tinycc - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -RUN install_packages libtcc-dev && cp /usr/lib/$(uname -m)-linux-gnu/libtcc.a ${BUN_DEPS_OUT_DIR} - -FROM bun-base as boringssl - -RUN install_packages golang - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/boringssl ${BUN_DIR}/src/deps/boringssl - -WORKDIR $BUN_DIR - -ENV CCACHE_DIR=/ccache - -RUN --mount=type=cache,target=/ccache cd ${BUN_DIR} && make boringssl && rm -rf src/deps/boringssl Makefile - -FROM bun-base as uws - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY packages/bun-uws ${BUN_DIR}/packages/bun-uws -COPY packages/bun-usockets ${BUN_DIR}/packages/bun-usockets -COPY src/deps/zlib ${BUN_DIR}/src/deps/zlib -COPY src/deps/boringssl/include ${BUN_DIR}/src/deps/boringssl/include -COPY src/deps/c-ares/include ${BUN_DIR}/src/deps/c-ares/include -COPY src/deps/libuwsockets.cpp ${BUN_DIR}/src/deps/libuwsockets.cpp -COPY src/deps/_libusockets.h ${BUN_DIR}/src/deps/_libusockets.h - -WORKDIR $BUN_DIR - -RUN cd $BUN_DIR && \ - make uws && rm -rf packages/bun-uws Makefile - -FROM bun-base as base64 - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/base64 ${BUN_DIR}/src/deps/base64 - -WORKDIR $BUN_DIR - -RUN cd $BUN_DIR && \ - make base64 && rm -rf src/deps/base64 Makefile - -FROM bun-base as picohttp - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -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/ - -WORKDIR $BUN_DIR - -RUN cd $BUN_DIR && \ - make picohttp - - -FROM bun-base-with-zig-and-webkit as identifier_cache - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -WORKDIR $BUN_DIR - -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 - -RUN cd $BUN_DIR && \ - make identifier-cache && rm -rf zig-cache Makefile - -FROM bun-base-with-zig-and-webkit as node_fallbacks - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -WORKDIR $BUN_DIR - - -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 - -FROM bun-base-with-zig-and-webkit as prepare_release - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -WORKDIR $BUN_DIR - -COPY ./root.zig ${BUN_DIR}/root.zig -COPY ./src ${BUN_DIR}/src -COPY ./build.zig ${BUN_DIR}/build.zig -COPY ./completions ${BUN_DIR}/completions -COPY ./packages ${BUN_DIR}/packages -COPY ./src/build-id ${BUN_DIR}/src/build-id -COPY ./package.json ${BUN_DIR}/package.json -COPY ./misctools ${BUN_DIR}/misctools -COPY Makefile ${BUN_DIR}/Makefile - - -FROM prepare_release as compile_release_obj - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY .prettierrc.cjs ${BUN_DIR}/.prettierrc.cjs - -WORKDIR $BUN_DIR - -ENV JSC_BASE_DIR=${WEBKIT_DIR} -ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib -ARG ARCH -ARG TRIPLET -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} -ARG GIT_SHA -ARG BUN_BASE_VERSION - -ENV BUN_BASE_VERSION=${BUN_BASE_VERSION} -ENV GIT_SHA=${GIT_SHA} - -COPY --from=identifier_cache ${BUN_DIR}/src/js_lexer/*.blob ${BUN_DIR}/src/js_lexer/ -COPY --from=node_fallbacks ${BUN_DIR}/src/node-fallbacks/out ${BUN_DIR}/src/node-fallbacks/out - -COPY ./src/build-id ${BUN_DIR}/src/build-id - -ENV CCACHE_DIR=/ccache - -RUN --mount=type=cache,target=/ccache cd $BUN_DIR && mkdir -p src/bun.js/bindings-obj && rm -rf $HOME/.cache zig-cache && make prerelease && \ - mkdir -p $BUN_RELEASE_DIR && \ - OUTPUT_DIR=/tmp/bun-${TRIPLET}-${GIT_SHA} $ZIG_PATH/zig build obj -Doutput-dir=/tmp/bun-${TRIPLET}-${GIT_SHA} -Doptimize=ReleaseFast -Dtarget="${TRIPLET}" -Dcpu="${CPU_TARGET}" && \ - cp /tmp/bun-${TRIPLET}-${GIT_SHA}/bun.o /tmp/bun-${TRIPLET}-${GIT_SHA}/bun-${BUN_BASE_VERSION}.$(cat ${BUN_DIR}/src/build-id).o && cd / && rm -rf $BUN_DIR - -FROM scratch as build_release_obj - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG GIT_SHA -ARG TRIPLET -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY --from=compile_release_obj /tmp/bun-${TRIPLET}-${GIT_SHA}/*.o / - -FROM prepare_release as compile_cpp - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY .prettierrc.cjs ${BUN_DIR}/.prettierrc.cjs - -WORKDIR $BUN_DIR - -ENV JSC_BASE_DIR=${WEBKIT_DIR} -ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib - -# Required for webcrypto bindings -COPY src/deps/boringssl/include ${BUN_DIR}/src/deps/boringssl/include - -ENV CCACHE_DIR=/ccache - -RUN --mount=type=cache,target=/ccache cd $BUN_DIR && mkdir -p src/bun.js/bindings-obj && rm -rf $HOME/.cache zig-cache && mkdir -p $BUN_RELEASE_DIR && \ - make release-bindings -j10 && mv src/bun.js/bindings-obj/* /tmp - -FROM bun-base as sqlite - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR - -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -ENV CCACHE_DIR=/ccache - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/bun.js/bindings/sqlite ${BUN_DIR}/src/bun.js/bindings/sqlite -COPY .prettierrc.cjs ${BUN_DIR}/.prettierrc.cjs - -WORKDIR $BUN_DIR - -ENV JSC_BASE_DIR=${WEBKIT_DIR} -ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib - -RUN --mount=type=cache,target=/ccache cd $BUN_DIR && make sqlite - -FROM bun-base as zstd - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR - -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -ENV CCACHE_DIR=/ccache - -COPY Makefile ${BUN_DIR}/Makefile -COPY src/deps/zstd ${BUN_DIR}/src/deps/zstd -COPY .prettierrc.cjs ${BUN_DIR}/.prettierrc.cjs - -WORKDIR $BUN_DIR - -ENV JSC_BASE_DIR=${WEBKIT_DIR} -ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib - -RUN --mount=type=cache,target=/ccache cd $BUN_DIR && make zstd - -FROM scratch as build_release_cpp - -COPY --from=compile_cpp /tmp/*.o / - -FROM prepare_release as build_release - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR -ARG CPU_TARGET -ENV CPU_TARGET=${CPU_TARGET} - -COPY Makefile ${BUN_DIR}/Makefile -COPY .prettierrc.cjs ${BUN_DIR}/.prettierrc.cjs - -WORKDIR $BUN_DIR - -ENV JSC_BASE_DIR=${WEBKIT_DIR} -ENV LIB_ICU_PATH=${WEBKIT_DIR}/lib - -COPY --from=zlib ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=base64 ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=libarchive ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=boringssl ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=lolhtml ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=mimalloc ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/ -COPY --from=picohttp ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/ -COPY --from=sqlite ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/ -COPY --from=zstd ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=tinycc ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=uws ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ -COPY --from=uws ${BUN_DEPS_OUT_DIR}/*.o ${BUN_DEPS_OUT_DIR}/ -COPY --from=c-ares ${BUN_DEPS_OUT_DIR}/*.a ${BUN_DEPS_OUT_DIR}/ - -COPY --from=build_release_obj /*.o /tmp -COPY --from=build_release_cpp /*.o ${BUN_DIR}/src/bun.js/bindings-obj/ -COPY --from=build_release_cpp /*.a ${BUN_DEPS_OUT_DIR}/ - -RUN cd $BUN_DIR && mkdir -p ${BUN_RELEASE_DIR} && make bun-relink copy-to-bun-release-dir && \ - rm -rf $HOME/.cache zig-cache misctools package.json build-id completions build.zig $(BUN_DIR)/packages - - - -FROM scratch as artifact - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR - -COPY --from=build_release ${BUN_RELEASE_DIR}/bun /bun -COPY --from=build_release ${BUN_RELEASE_DIR}/bun-profile /bun-profile -COPY --from=build_release ${BUN_DEPS_OUT_DIR}/* /bun-dependencies -COPY --from=build_release_obj /*.o /bun-obj - - -FROM prepare_release as build_unit - -ARG DEBIAN_FRONTEND -ARG GITHUB_WORKSPACE -ARG ZIG_PATH -# Directory extracts to "bun-webkit" -ARG WEBKIT_DIR -ARG BUN_RELEASE_DIR -ARG BUN_DEPS_OUT_DIR -ARG BUN_DIR - -WORKDIR $BUN_DIR - -ENV PATH "$ZIG_PATH:$PATH" -ENV LIB_ICU_PATH "${WEBKIT_DIR}/lib" - -CMD make headers \ - api \ - analytics \ - bun_error \ - fallback_decoder \ - bindings -j10 && \ - make \ - run-all-unit-tests - - - -# FROM 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 - -# 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 - -# USER chromium -# WORKDIR $BUN_DIR - -# 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 - -# COPY ./test ${BUN_DIR}/test -# 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 - -# # # 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 - -# USER root -# RUN chgrp -R chromium ${BUN_DIR} && chmod g+rwx ${BUN_DIR} && chown -R chromium:chromium ${BUN_DIR} -# USER chromium - -# CMD [ "bash", "run-test.sh" ] - -# FROM release +FROM bitnami/minideb:bullseye as base + +ARG CLANG_VERSION="17" +ARG NODE_VERSION="20" +ARG DEBIAN_FRONTEND="noninteractive" + +RUN apt-get update -y \ + && install_packages \ + ca-certificates \ + curl \ + gnupg \ + && echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-${CLANG_VERSION} main" > /etc/apt/sources.list.d/llvm.list \ + && echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-${CLANG_VERSION} main" >> /etc/apt/sources.list.d/llvm.list \ + && curl -fsSL "https://apt.llvm.org/llvm-snapshot.gpg.key" | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_${NODE_VERSION}.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" | apt-key add - \ + && echo "deb https://apt.kitware.com/ubuntu/ focal main" > /etc/apt/sources.list.d/kitware.list \ + && curl -fsSL "https://apt.kitware.com/keys/kitware-archive-latest.asc" | apt-key add - \ + && install_packages \ + bash \ + lsb-release \ + software-properties-common \ + clang-${CLANG_VERSION} \ + lld-${CLANG_VERSION} \ + lldb-${CLANG_VERSION} \ + clangd-${CLANG_VERSION} \ + make \ + cmake \ + ccache \ + ninja-build \ + file \ + gnupg \ + libc-dev \ + libxml2 \ + libxml2-dev \ + xz-utils \ + git \ + tar \ + rsync \ + gzip \ + unzip \ + perl \ + python3 \ + ruby \ + nodejs \ + && npm install -g esbuild + +COPY package.json package.json +COPY Makefile Makefile +COPY CMakeLists.txt CMakeLists.txt +COPY src/ src/ +COPY packages/bun-usockets/ packages/bun-usockets/ +COPY packages/bun-uws/ packages/bun-uws/ +COPY .scripts/ .scripts/ +COPY *.zig ./ + +ARG CXX="clang++-${CLANG_VERSION}" +ARG CC="clang-${CLANG_VERSION}" +ARG LD="lld-${CLANG_VERSION}" +ARG AR="/usr/bin/llvm-ar-${CLANG_VERSION}" + +RUN npm install && npm run build From 9cdf695df3fd9b4cb8660dd7225b8fcfc94d8df1 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Thu, 19 Oct 2023 18:33:38 -0700 Subject: [PATCH 20/21] Build --- Dockerfile | 52 ++++++++++++++++++++++++++++++++++++++-------------- Makefile | 1 - 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index e79d42184d..2882ab29f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM bitnami/minideb:bullseye as base ARG CLANG_VERSION="17" ARG NODE_VERSION="20" +ARG ZIG_VERSION="0.12.0-dev.1114+e8f3c4c4b" ARG DEBIAN_FRONTEND="noninteractive" RUN apt-get update -y \ @@ -17,6 +18,7 @@ RUN apt-get update -y \ && echo "deb https://apt.kitware.com/ubuntu/ focal main" > /etc/apt/sources.list.d/kitware.list \ && curl -fsSL "https://apt.kitware.com/keys/kitware-archive-latest.asc" | apt-key add - \ && install_packages \ + wget \ bash \ lsb-release \ software-properties-common \ @@ -28,6 +30,8 @@ RUN apt-get update -y \ cmake \ ccache \ ninja-build \ + libtool \ + automake \ file \ gnupg \ libc-dev \ @@ -42,21 +46,41 @@ RUN apt-get update -y \ perl \ python3 \ ruby \ + golang-go \ nodejs \ - && npm install -g esbuild + && ln -s "/usr/bin/clang-${CLANG_VERSION}" /usr/bin/clang \ + && ln -s "/usr/bin/clang++-${CLANG_VERSION}" /usr/bin/clang++ \ + && ln -s "/usr/bin/lld-${CLANG_VERSION}" /usr/bin/lld \ + && ln -s "/usr/bin/lldb-${CLANG_VERSION}" /usr/bin/lldb \ + && ln -s "/usr/bin/clangd-${CLANG_VERSION}" /usr/bin/clangd \ + && ln -s "/usr/bin/llvm-ar-${CLANG_VERSION}" /usr/bin/llvm-ar \ + && arch="$(dpkg --print-architecture)" \ + && case "${arch##*-}" in \ + amd64) variant="x86_64";; \ + arm64) variant="aarch64";; \ + *) echo "error: unsupported architecture: $arch"; exit 1 ;; \ + esac \ + && echo "https://ziglang.org/builds/zig-linux-${variant}-${ZIG_VERSION}.tar.xz" \ + && curl -fsSL "https://ziglang.org/builds/zig-linux-${variant}-${ZIG_VERSION}.tar.xz" | tar xJ --strip-components=1 \ + && mv zig /usr/bin/zig \ + && npm install -g bun esbuild -COPY package.json package.json -COPY Makefile Makefile -COPY CMakeLists.txt CMakeLists.txt -COPY src/ src/ -COPY packages/bun-usockets/ packages/bun-usockets/ -COPY packages/bun-uws/ packages/bun-uws/ -COPY .scripts/ .scripts/ -COPY *.zig ./ +COPY . . +# COPY package.json package.json +# COPY Makefile Makefile +# COPY CMakeLists.txt CMakeLists.txt +# COPY src/ src/ +# COPY packages/bun-usockets/ packages/bun-usockets/ +# COPY packages/bun-uws/ packages/bun-uws/ +# COPY .scripts/ .scripts/ +# COPY *.zig ./ -ARG CXX="clang++-${CLANG_VERSION}" -ARG CC="clang-${CLANG_VERSION}" -ARG LD="lld-${CLANG_VERSION}" -ARG AR="/usr/bin/llvm-ar-${CLANG_VERSION}" +# ARG CXX="clang++-${CLANG_VERSION}" +# ARG CC="clang-${CLANG_VERSION}" +# ARG LD="lld-${CLANG_VERSION}" +# ARG AR="/usr/bin/llvm-ar-${CLANG_VERSION}" -RUN npm install && npm run build +RUN bun install \ + && bash .scripts/postinstall.sh \ + && make vendor-without-npm \ + && bun run build diff --git a/Makefile b/Makefile index 32c2779275..1b0219861c 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,6 @@ endif MIN_MACOS_VERSION ?= $(DEFAULT_MIN_MACOS_VERSION) BUN_BASE_VERSION = 1.0 - CI ?= false AR= From 071165b737b2caaaac74bdf3ea0ab8b8bafd9b35 Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Fri, 20 Oct 2023 16:45:33 -0700 Subject: [PATCH 21/21] More changes to Dockerfile --- Dockerfile | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2882ab29f3..f1bb63b8d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM bitnami/minideb:bullseye as base -ARG CLANG_VERSION="17" +ARG CLANG_VERSION="16" ARG NODE_VERSION="20" ARG ZIG_VERSION="0.12.0-dev.1114+e8f3c4c4b" ARG DEBIAN_FRONTEND="noninteractive" @@ -22,6 +22,11 @@ RUN apt-get update -y \ bash \ lsb-release \ software-properties-common \ + build-essential \ + autoconf \ + automake \ + libtool \ + pkg-config \ clang-${CLANG_VERSION} \ lld-${CLANG_VERSION} \ lldb-${CLANG_VERSION} \ @@ -30,14 +35,13 @@ RUN apt-get update -y \ cmake \ ccache \ ninja-build \ - libtool \ - automake \ file \ gnupg \ libc-dev \ libxml2 \ libxml2-dev \ xz-utils \ + libtcc-dev \ git \ tar \ rsync \ @@ -46,14 +50,14 @@ RUN apt-get update -y \ perl \ python3 \ ruby \ - golang-go \ + golang \ nodejs \ - && ln -s "/usr/bin/clang-${CLANG_VERSION}" /usr/bin/clang \ - && ln -s "/usr/bin/clang++-${CLANG_VERSION}" /usr/bin/clang++ \ - && ln -s "/usr/bin/lld-${CLANG_VERSION}" /usr/bin/lld \ - && ln -s "/usr/bin/lldb-${CLANG_VERSION}" /usr/bin/lldb \ - && ln -s "/usr/bin/clangd-${CLANG_VERSION}" /usr/bin/clangd \ - && ln -s "/usr/bin/llvm-ar-${CLANG_VERSION}" /usr/bin/llvm-ar \ + && ln -s /usr/bin/clang-${CLANG_VERSION} /usr/bin/clang \ + && ln -s /usr/bin/clang++-${CLANG_VERSION} /usr/bin/clang++ \ + && ln -s /usr/bin/lld-${CLANG_VERSION} /usr/bin/lld \ + && ln -s /usr/bin/lldb-${CLANG_VERSION} /usr/bin/lldb \ + && ln -s /usr/bin/clangd-${CLANG_VERSION} /usr/bin/clangd \ + && ln -s /usr/bin/llvm-ar-${CLANG_VERSION} /usr/bin/llvm-ar \ && arch="$(dpkg --print-architecture)" \ && case "${arch##*-}" in \ amd64) variant="x86_64";; \ @@ -63,6 +67,8 @@ RUN apt-get update -y \ && echo "https://ziglang.org/builds/zig-linux-${variant}-${ZIG_VERSION}.tar.xz" \ && curl -fsSL "https://ziglang.org/builds/zig-linux-${variant}-${ZIG_VERSION}.tar.xz" | tar xJ --strip-components=1 \ && mv zig /usr/bin/zig \ + && curl "https://sh.rustup.rs" -sSf | sh -s -- -y \ + && mv ${HOME}/.cargo/bin/* /usr/bin/ \ && npm install -g bun esbuild COPY . . @@ -75,10 +81,10 @@ COPY . . # COPY .scripts/ .scripts/ # COPY *.zig ./ -# ARG CXX="clang++-${CLANG_VERSION}" -# ARG CC="clang-${CLANG_VERSION}" -# ARG LD="lld-${CLANG_VERSION}" -# ARG AR="/usr/bin/llvm-ar-${CLANG_VERSION}" +ARG CXX="clang++-${CLANG_VERSION}" +ARG CC="clang-${CLANG_VERSION}" +ARG LD="lld-${CLANG_VERSION}" +ARG AR="/usr/bin/llvm-ar-${CLANG_VERSION}" RUN bun install \ && bash .scripts/postinstall.sh \