name: Build from tarball on: pull_request: types: [opened, synchronize, reopened, ready_for_review] paths-ignore: - .mailmap - '**.md' - AUTHORS - doc/** - .github/** - '!.github/workflows/build-tarball.yml' push: branches: - main - v[0-9]+.x-staging - v[0-9]+.x paths-ignore: - .mailmap - '**.md' - AUTHORS - doc/** - .github/** - '!.github/workflows/build-tarball.yml' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true env: PYTHON_VERSION: '3.12' FLAKY_TESTS: keep_retrying CC: sccache clang CXX: sccache clang++ SCCACHE_GHA_ENABLED: 'true' permissions: contents: read jobs: build-tarball: if: github.event.pull_request.draft == false runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 with: version: v0.8.1 - 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 -j8 SKIP_XZ=1 mkdir tarballs mv *.tar.gz tarballs - name: Upload tarball artifact uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: name: tarballs path: tarballs test-tarball-linux: needs: build-tarball runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 with: version: v0.8.1 - name: Environment Information run: npx envinfo - name: Download tarball uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 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: Copy directories needed for testing run: | cp -r tools/eslint $TAR_DIR/tools cp -r tools/eslint-rules $TAR_DIR/tools - name: Build run: | cd $TAR_DIR make build-ci -j4 V=1 - name: Test run: | cd $TAR_DIR make run-ci -j4 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=spec' --measure-flakiness 9"