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/bootstrap/** - 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/bootstrap/** - 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-24.04 steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: python-version: ${{ env.PYTHON_VERSION }} allow-prereleases: true - name: Environment Information run: npx envinfo - 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@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: tarballs path: '*.tar.gz' compression-level: 0 test-tarball-linux: needs: build-tarball runs-on: ubuntu-24.04 env: CC: sccache clang-19 CXX: sccache clang++-19 SCCACHE_GHA_ENABLED: 'true' steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 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@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: python-version: ${{ env.PYTHON_VERSION }} allow-prereleases: true - name: Set up sccache uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9 with: version: v0.12.0 - name: Environment Information run: npx envinfo - name: Download tarball uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 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"