Currently they all run `npx envinfo` without pinning the version. This can be a supply-chain risk. Signed-off-by: Joyee Cheung <joyeec9h3@gmail.com> PR-URL: https://github.com/nodejs/node/pull/64117 Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
141 lines
4.4 KiB
YAML
141 lines
4.4 KiB
YAML
name: Build from tarball
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, ready_for_review]
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '**.nix'
|
|
- eslint.config.mjs
|
|
- '**/eslint.config_partial.mjs'
|
|
- android-configure
|
|
- android-configure.py
|
|
- android-patches/**
|
|
- benchmarks/**
|
|
- codecov.yml
|
|
- doc/**
|
|
- pyproject.yml
|
|
- tsconfig.json
|
|
- test/internet/**
|
|
- tools/actions/**
|
|
- tools/dep_updaters/**
|
|
- tools/doc/**
|
|
- tools/eslint-rules/**
|
|
- tools/eslint/**
|
|
- tools/lint-md/**
|
|
- typings/**
|
|
- vcbuild.bat
|
|
- .**
|
|
- '!.github/workflows/build-tarball.yml'
|
|
push:
|
|
branches:
|
|
- main
|
|
- v[0-9]+.x-staging
|
|
- v[0-9]+.x
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '**.nix'
|
|
- eslint.config.mjs
|
|
- '**/eslint.config_partial.mjs'
|
|
- android-configure
|
|
- android-configure.py
|
|
- android-patches/**
|
|
- benchmarks/**
|
|
- codecov.yml
|
|
- doc/**
|
|
- pyproject.yml
|
|
- tsconfig.json
|
|
- test/internet/**
|
|
- tools/actions/**
|
|
- tools/dep_updaters/**
|
|
- tools/doc/**
|
|
- tools/eslint-rules/**
|
|
- tools/eslint/**
|
|
- tools/lint-md/**
|
|
- typings/**
|
|
- vcbuild.bat
|
|
- .**
|
|
- '!.github/workflows/build-tarball.yml'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
PYTHON_VERSION: '3.14'
|
|
FLAKY_TESTS: keep_retrying
|
|
CLANG_VERSION: '19'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build-tarball:
|
|
if: github.event.pull_request.draft == false
|
|
runs-on: ubuntu-slim
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
persist-credentials: false
|
|
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
allow-prereleases: true
|
|
- name: Environment Information
|
|
run: npx envinfo@7.21.0
|
|
- name: Make tarball
|
|
run: |
|
|
export DISTTYPE=nightly
|
|
export DATESTRING=$(date "+%Y-%m-%d")
|
|
export COMMIT=$(git rev-parse --short=10 "$GITHUB_SHA")
|
|
./configure && make tar -j4 SKIP_XZ=1
|
|
- name: Upload tarball artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
name: tarballs
|
|
path: '*.tar.gz'
|
|
compression-level: 0
|
|
test-tarball-linux:
|
|
needs: build-tarball
|
|
runs-on: ubuntu-24.04-arm
|
|
env:
|
|
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
|
|
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
|
|
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
|
|
SCCACHE_IDLE_TIMEOUT: '0'
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
persist-credentials: false
|
|
sparse-checkout: .github/actions/install-clang
|
|
sparse-checkout-cone-mode: false
|
|
- name: Install Clang ${{ env.CLANG_VERSION }}
|
|
uses: ./.github/actions/install-clang
|
|
with:
|
|
clang-version: ${{ env.CLANG_VERSION }}
|
|
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
allow-prereleases: true
|
|
- name: Set up sccache
|
|
if: github.base_ref == 'main' || github.ref_name == 'main'
|
|
uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
|
|
with:
|
|
version: v0.16.0
|
|
- name: Environment Information
|
|
run: npx envinfo@7.21.0
|
|
- name: Download tarball
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: tarballs
|
|
path: tarballs
|
|
- name: Extract tarball
|
|
run: |
|
|
tar xzf tarballs/*.tar.gz -C "$RUNNER_TEMP"
|
|
echo "TAR_DIR=$RUNNER_TEMP/$(basename tarballs/*.tar.gz .tar.gz)" >> "$GITHUB_ENV"
|
|
- name: Build
|
|
run: make -C "$TAR_DIR" build-ci -j4 V=1
|
|
- name: Test
|
|
run: make -C "$TAR_DIR" test-ci -j1 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9"
|