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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache uses: mozilla-actions/sccache-action@89e9040de88b577a072e3760aaf59f585da083af # v0.0.5 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@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: tarballs path: tarballs test-tarball-linux: needs: build-tarball runs-on: ubuntu-24.04 steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache uses: mozilla-actions/sccache-action@89e9040de88b577a072e3760aaf59f585da083af # v0.0.5 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"