From 79cd32b45538a17ef4320ab65f531a0723961dcc Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 09:43:27 -0400 Subject: [PATCH 01/18] chore(CI): setup Python using pyenv --- .github/workflows/test-and-publish.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 305d7a34..dd83c857 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -179,7 +179,20 @@ jobs: submodules: recursive fetch-depth: 0 # fetch all history for all branches and tags # poetry-dynamic-versioning needs git tags to produce the correct version number + - name: Setup Python + if: ${{ runner.os == 'Linux' }} + run: | + # Use pyenv to install Python version that is not available via `actions/setup-python` + curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc + echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc + pyenv install $PYTHON_VERSION + pyenv global $PYTHON_VERSION + env: + PYTHON_VERSION: ${{ matrix.python_version }} - uses: actions/setup-python@v5 + if: ${{ runner.os != 'Linux' }} with: python-version: ${{ matrix.python_version }} - name: Setup Poetry From f8efe5e824b9cda8b3ce330374152ffbd208e565 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 09:50:40 -0400 Subject: [PATCH 02/18] fix ci --- .github/workflows/test-and-publish.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index dd83c857..2d3c8823 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -187,6 +187,7 @@ jobs: echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc + source ~/.bashrc pyenv install $PYTHON_VERSION pyenv global $PYTHON_VERSION env: From 1449faef9e6b29ef7be5c2fe9a8d48e9c98bbc22 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 09:54:44 -0400 Subject: [PATCH 03/18] fix ci --- .github/workflows/test-and-publish.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 2d3c8823..42ed784f 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -183,11 +183,12 @@ jobs: if: ${{ runner.os == 'Linux' }} run: | # Use pyenv to install Python version that is not available via `actions/setup-python` + unset PYENV_ROOT curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc - source ~/.bashrc + export PATH="$HOME/.pyenv/bin:$PATH" pyenv install $PYTHON_VERSION pyenv global $PYTHON_VERSION env: From 36daa908d800804ed50580115c365f18d55e7923 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 10:12:53 -0400 Subject: [PATCH 04/18] fix CI Setup container --- .github/workflows/test-and-publish.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 42ed784f..2780ea1e 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -160,7 +160,8 @@ jobs: if: ${{ matrix.os == 'ubuntu-22.04' }} run: | apt-get update -y - apt-get install -y sudo libnss3-dev libssl-dev + apt-get install -y sudo curl libnss3-dev libssl-dev + apt-get install -y zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv apt-get install -y git # required for `actions/checkout` apt-get install -y nodejs npm # required for pminit to build apt-get install -y build-essential From 25ea0eac367729b404a0ca748eab4ad1585b8658 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 10:28:10 -0400 Subject: [PATCH 05/18] fix ci --- .github/workflows/test-and-publish.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 2780ea1e..d2cda65e 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -160,8 +160,8 @@ jobs: if: ${{ matrix.os == 'ubuntu-22.04' }} run: | apt-get update -y - apt-get install -y sudo curl libnss3-dev libssl-dev - apt-get install -y zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv + apt-get install -y sudo libnss3-dev libssl-dev + apt-get install -y curl python3 zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv apt-get install -y git # required for `actions/checkout` apt-get install -y nodejs npm # required for pminit to build apt-get install -y build-essential From ed90f47975c35b8c334df77abc36904f598c48c7 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 10:40:34 -0400 Subject: [PATCH 06/18] fix ci --- .github/workflows/test-and-publish.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index d2cda65e..8bb0a197 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -198,10 +198,15 @@ jobs: if: ${{ runner.os != 'Linux' }} with: python-version: ${{ matrix.python_version }} + - run: | + source ~/.bashrc || true # load pyenv into the current shell + python --version + python3 --version - name: Setup Poetry uses: snok/install-poetry@v1 with: version: 1.5.1 + virtualenvs-create: false - name: Install Dependencies run: | echo "Installing Dependencies" From 4858659582b1db8a33b9abd5c2af4ebacbe1ac62 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 11:05:55 -0400 Subject: [PATCH 07/18] bashrc file is not read, so we need to add to GITHUB_PATH manually --- .github/workflows/test-and-publish.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 8bb0a197..1ec1896d 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -161,7 +161,7 @@ jobs: run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev - apt-get install -y curl python3 zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv + apt-get install -y curl zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv apt-get install -y git # required for `actions/checkout` apt-get install -y nodejs npm # required for pminit to build apt-get install -y build-essential @@ -186,9 +186,9 @@ jobs: # Use pyenv to install Python version that is not available via `actions/setup-python` unset PYENV_ROOT curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc - echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc + echo "$HOME/.pyenv/bin" >> $GITHUB_PATH # ~/.bashrc file is not read, so we need to add to GITHUB_PATH manually + echo "$HOME/.pyenv/shims" >> $GITHUB_PATH + echo "PYENV_ROOT=$HOME/.pyenv" >> $GITHUB_ENV export PATH="$HOME/.pyenv/bin:$PATH" pyenv install $PYTHON_VERSION pyenv global $PYTHON_VERSION @@ -199,14 +199,12 @@ jobs: with: python-version: ${{ matrix.python_version }} - run: | - source ~/.bashrc || true # load pyenv into the current shell python --version python3 --version - name: Setup Poetry uses: snok/install-poetry@v1 with: version: 1.5.1 - virtualenvs-create: false - name: Install Dependencies run: | echo "Installing Dependencies" From 79e00fcbde4c41f4d5874f0a2503ce7005bf1b4b Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 11:38:10 -0400 Subject: [PATCH 08/18] try running a Ubuntu 20.04 container on arm64 Linux --- .github/workflows/test-and-publish.yaml | 28 ++++++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 1ec1896d..b97496c6 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -71,7 +71,7 @@ jobs: # see https://github.blog/changelog/2024-01-30-github-actions-macos-14-sonoma-is-now-available python_version: [ '3.10' ] runs-on: ${{ matrix.os }} - container: ${{ (matrix.os == 'ubuntu-22.04' && 'ubuntu:20.04') || null }} # Use the Ubuntu 20.04 container inside Ubuntu 22.04 runner to build + container: ${{ ( runner.os == 'Linux' && 'ubuntu:20.04') || null }} # Use the Ubuntu 20.04 container inside Ubuntu 22.04 runner to build steps: - uses: actions/checkout@v4 - name: Read the mozilla-central commit hash to be used @@ -84,14 +84,29 @@ jobs: ./_spidermonkey_install/* key: spidermonkey-${{ env.MOZCENTRAL_VERSION }}-${{ runner.os }}-${{ runner.arch }} - name: Setup container - if: ${{ matrix.os == 'ubuntu-22.04' && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} + if: ${{ runner.os == 'Linux' && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev + apt-get install -y curl zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata echo "AGENT_TOOLSDIRECTORY=/" >> $GITHUB_ENV # do not use the Python installation cached for Ubuntu 22.04 + - name: Setup Python + if: ${{ runner.os == 'Linux' && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} + run: | + # Use pyenv to install Python version that is not available via `actions/setup-python` + unset PYENV_ROOT + curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash + echo "$HOME/.pyenv/bin" >> $GITHUB_PATH # ~/.bashrc file is not read, so we need to add to GITHUB_PATH manually + echo "$HOME/.pyenv/shims" >> $GITHUB_PATH + echo "PYENV_ROOT=$HOME/.pyenv" >> $GITHUB_ENV + export PATH="$HOME/.pyenv/bin:$PATH" + pyenv install $PYTHON_VERSION + pyenv global $PYTHON_VERSION + env: + PYTHON_VERSION: ${{ matrix.python_version }} - uses: actions/setup-python@v5 - if: ${{ steps.cache-spidermonkey.outputs.cache-hit != 'true' }} + if: ${{ runner.os != 'Linux' && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} with: python-version: ${{ matrix.python_version }} - name: Setup XCode @@ -154,10 +169,10 @@ jobs: os: [ 'ubuntu-22.04', 'macos-13', 'macos-14', 'windows-2022', 'ubuntu-22.04-arm' ] python_version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13' ] runs-on: ${{ matrix.os }} - container: ${{ (matrix.os == 'ubuntu-22.04' && 'ubuntu:20.04') || null }} + container: ${{ (runner.os == 'Linux' && 'ubuntu:20.04') || null }} steps: - name: Setup container - if: ${{ matrix.os == 'ubuntu-22.04' }} + if: ${{ runner.os == 'Linux' }} run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev @@ -198,9 +213,6 @@ jobs: if: ${{ runner.os != 'Linux' }} with: python-version: ${{ matrix.python_version }} - - run: | - python --version - python3 --version - name: Setup Poetry uses: snok/install-poetry@v1 with: From f2c84429f721e96f9b4f76e9f95f90ec0038ee73 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 11:42:39 -0400 Subject: [PATCH 09/18] fix ci container --- .github/workflows/test-and-publish.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index b97496c6..6705480a 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -71,7 +71,7 @@ jobs: # see https://github.blog/changelog/2024-01-30-github-actions-macos-14-sonoma-is-now-available python_version: [ '3.10' ] runs-on: ${{ matrix.os }} - container: ${{ ( runner.os == 'Linux' && 'ubuntu:20.04') || null }} # Use the Ubuntu 20.04 container inside Ubuntu 22.04 runner to build + container: ${{ (startsWith(matrix.os, 'ubuntu') && 'ubuntu:20.04') || null }} # Use the Ubuntu 20.04 container inside Ubuntu 22.04 runner to build steps: - uses: actions/checkout@v4 - name: Read the mozilla-central commit hash to be used @@ -84,7 +84,7 @@ jobs: ./_spidermonkey_install/* key: spidermonkey-${{ env.MOZCENTRAL_VERSION }}-${{ runner.os }}-${{ runner.arch }} - name: Setup container - if: ${{ runner.os == 'Linux' && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} + if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev @@ -92,7 +92,7 @@ jobs: DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata echo "AGENT_TOOLSDIRECTORY=/" >> $GITHUB_ENV # do not use the Python installation cached for Ubuntu 22.04 - name: Setup Python - if: ${{ runner.os == 'Linux' && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} + if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | # Use pyenv to install Python version that is not available via `actions/setup-python` unset PYENV_ROOT @@ -106,7 +106,7 @@ jobs: env: PYTHON_VERSION: ${{ matrix.python_version }} - uses: actions/setup-python@v5 - if: ${{ runner.os != 'Linux' && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} + if: ${{ !startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} with: python-version: ${{ matrix.python_version }} - name: Setup XCode @@ -169,10 +169,10 @@ jobs: os: [ 'ubuntu-22.04', 'macos-13', 'macos-14', 'windows-2022', 'ubuntu-22.04-arm' ] python_version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13' ] runs-on: ${{ matrix.os }} - container: ${{ (runner.os == 'Linux' && 'ubuntu:20.04') || null }} + container: ${{ (startsWith(matrix.os, 'ubuntu') && 'ubuntu:20.04') || null }} steps: - name: Setup container - if: ${{ runner.os == 'Linux' }} + if: ${{ startsWith(matrix.os, 'ubuntu') }} run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev @@ -196,7 +196,7 @@ jobs: fetch-depth: 0 # fetch all history for all branches and tags # poetry-dynamic-versioning needs git tags to produce the correct version number - name: Setup Python - if: ${{ runner.os == 'Linux' }} + if: ${{ startsWith(matrix.os, 'ubuntu') }} run: | # Use pyenv to install Python version that is not available via `actions/setup-python` unset PYENV_ROOT @@ -210,7 +210,7 @@ jobs: env: PYTHON_VERSION: ${{ matrix.python_version }} - uses: actions/setup-python@v5 - if: ${{ runner.os != 'Linux' }} + if: ${{ !startsWith(matrix.os, 'ubuntu') }} with: python-version: ${{ matrix.python_version }} - name: Setup Poetry From 150eea21bd31ed194e54116c620575b4bc9f42b1 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 11:46:50 -0400 Subject: [PATCH 10/18] fix ci --- .github/workflows/test-and-publish.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 6705480a..c7a8d27e 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -88,7 +88,8 @@ jobs: run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev - apt-get install -y curl zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv + apt-get install -y curl make git build-essential + apt-get install -y zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata echo "AGENT_TOOLSDIRECTORY=/" >> $GITHUB_ENV # do not use the Python installation cached for Ubuntu 22.04 - name: Setup Python From 33b8765ccff6999dc34cbf7383553f85a6686959 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 13:21:19 -0400 Subject: [PATCH 11/18] chore(CI): install LLVM 18 --- .github/workflows/test-and-publish.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index c7a8d27e..d9d726c5 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -92,6 +92,12 @@ jobs: apt-get install -y zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata echo "AGENT_TOOLSDIRECTORY=/" >> $GITHUB_ENV # do not use the Python installation cached for Ubuntu 22.04 + - name: Setup LLVM + if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + ./llvm.sh 18 # install LLVM version 18 - name: Setup Python if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | From 120288848facc53bd72be8d57b9286bce8719643 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 13:27:21 -0400 Subject: [PATCH 12/18] fix ci --- .github/workflows/test-and-publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index d9d726c5..5669b64a 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -88,7 +88,7 @@ jobs: run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev - apt-get install -y curl make git build-essential + apt-get install -y curl wget make git build-essential apt-get install -y zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata echo "AGENT_TOOLSDIRECTORY=/" >> $GITHUB_ENV # do not use the Python installation cached for Ubuntu 22.04 From ed68856615fabf204d9c1e2e0528a443841750cf Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 13:40:15 -0400 Subject: [PATCH 13/18] fix ci --- .github/workflows/test-and-publish.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 5669b64a..7fe65f59 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -88,13 +88,14 @@ jobs: run: | apt-get update -y apt-get install -y sudo libnss3-dev libssl-dev - apt-get install -y curl wget make git build-essential + apt-get install -y curl make git build-essential apt-get install -y zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # required for pyenv DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata echo "AGENT_TOOLSDIRECTORY=/" >> $GITHUB_ENV # do not use the Python installation cached for Ubuntu 22.04 - name: Setup LLVM if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | + apt-get install -y lsb-release wget wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh ./llvm.sh 18 # install LLVM version 18 From a030d747d0b5da6b105dcb4aee403251b2c76741 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 13:43:26 -0400 Subject: [PATCH 14/18] fix ci --- .github/workflows/test-and-publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 7fe65f59..e173f71a 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -95,7 +95,7 @@ jobs: - name: Setup LLVM if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | - apt-get install -y lsb-release wget + apt-get install -y lsb-release wget software-properties-common gnupg wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh ./llvm.sh 18 # install LLVM version 18 From d20db24a9dee8a1fca7bbf83aded07cb5fb9b29d Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 14:06:00 -0400 Subject: [PATCH 15/18] fix ci --- .github/workflows/test-and-publish.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index e173f71a..30997e80 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -96,9 +96,10 @@ jobs: if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | apt-get install -y lsb-release wget software-properties-common gnupg - wget https://apt.llvm.org/llvm.sh - chmod +x llvm.sh - ./llvm.sh 18 # install LLVM version 18 + echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/llvm.list + echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-defaults main" | tee -a /etc/apt/sources.list.d/llvm.list + apt-get update -y + apt-get install -y llvm-defaults clang - name: Setup Python if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | From a6b7696657b1add720bca981701dcd9553e3490d Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 14:43:42 -0400 Subject: [PATCH 16/18] fix ci --- .github/workflows/test-and-publish.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 30997e80..89354836 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -96,10 +96,12 @@ jobs: if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | apt-get install -y lsb-release wget software-properties-common gnupg - echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/llvm.list - echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-defaults main" | tee -a /etc/apt/sources.list.d/llvm.list - apt-get update -y - apt-get install -y llvm-defaults clang + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + ./llvm.sh 18 # install LLVM version 18 + update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-18 18 + update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 18 + update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 18 - name: Setup Python if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | From acade44b8c6adb3931cae7017593b9fcb944f93e Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 16:36:20 -0400 Subject: [PATCH 17/18] fix ci --- .github/workflows/test-and-publish.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 89354836..9ba24ba2 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -95,6 +95,7 @@ jobs: - name: Setup LLVM if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | + apt-get install -y clang clang++ apt-get install -y lsb-release wget software-properties-common gnupg wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh @@ -102,6 +103,8 @@ jobs: update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-18 18 update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 18 update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 18 + clang --version + clang++ --version - name: Setup Python if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | From a4987171706eedccf1020f51dd2ea57bbbb3e6e4 Mon Sep 17 00:00:00 2001 From: Tom Tang Date: Mon, 14 Jul 2025 17:04:22 -0400 Subject: [PATCH 18/18] fix ci --- .github/workflows/test-and-publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-and-publish.yaml b/.github/workflows/test-and-publish.yaml index 9ba24ba2..109561f8 100644 --- a/.github/workflows/test-and-publish.yaml +++ b/.github/workflows/test-and-publish.yaml @@ -95,7 +95,7 @@ jobs: - name: Setup LLVM if: ${{ startsWith(matrix.os, 'ubuntu') && steps.cache-spidermonkey.outputs.cache-hit != 'true' }} run: | - apt-get install -y clang clang++ + apt-get install -y llvm clang apt-get install -y lsb-release wget software-properties-common gnupg wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh