name: M6 deployable RC on: push: pull_request: workflow_dispatch: env: FORCE_COLOR: "0" NO_COLOR: "1" jobs: quick: runs-on: [self-hosted, linux, x64, blender-web] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20.19.2 cache: npm cache-dependency-path: web/package-lock.json - name: Run quick lane run: npm --prefix web run ci:quick - name: Validate quick report run: npm --prefix web run test:ci-report -- release/ci-reports/quick.json - name: Upload quick report if: always() uses: actions/upload-artifact@v4 with: name: m6-quick-report path: release/ci-reports/ retention-days: 7 chromium: needs: quick runs-on: [self-hosted, linux, x64, blender-web] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20.19.2 cache: npm cache-dependency-path: web/package-lock.json - name: Install browser driver from lockfile run: | npm --prefix web ci --ignore-scripts npm --prefix web exec -- playwright install chromium - name: Run Chromium lane run: npm --prefix web run ci:chromium - name: Validate Chromium report run: npm --prefix web run test:ci-report -- release/ci-reports/chromium.json - name: Upload Chromium report if: always() uses: actions/upload-artifact@v4 with: name: m6-chromium-report path: release/ci-reports/ retention-days: 14 release: needs: chromium if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') }} runs-on: [self-hosted, linux, x64, blender-web-release] env: BLENDER_BIN: ${{ vars.BLENDER_BIN }} BLENDER_ARCHIVE_SHA256: ${{ vars.BLENDER_ARCHIVE_SHA256 }} VDB_RESOURCE_ROOT: ${{ vars.VDB_RESOURCE_ROOT }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20.19.2 cache: npm cache-dependency-path: web/package-lock.json - name: Cache pinned Emscripten toolchain data uses: actions/cache@v4 with: path: .emcache key: emscripten-${{ runner.os }}-3.1.69-${{ hashFiles('tools/web/emscripten-env.sh', 'web/package-lock.json') }} - name: Install browser driver from lockfile run: | npm --prefix web ci --ignore-scripts npm --prefix web exec -- playwright install chromium - name: Run release lane run: npm --prefix web run ci:release - name: Validate release report and hashes run: npm --prefix web run test:ci-report -- release/ci-reports/release.json - name: Upload release report and archives if: always() uses: actions/upload-artifact@v4 with: name: m6-release-report path: | release/ci-reports/ release/archive-reports/ release/operations-reports/ release/SHA256SUMS.txt release/RC_MANIFEST.json release/RC_MANIFEST.json.sha256 release/blender-web-offline.tar.gz release/blender-web-corresponding-source.tar.gz retention-days: 30