Skip to content

Instantly share code, notes, and snippets.

@sppatel
sppatel / build.yml
Created August 5, 2022 12:31
Jest Matrix
jobs:
setup-tests:
name: Setup Tests
runs-on: ubuntu-latest
outputs:
test-chunks: ${{ steps['set-test-chunks'].outputs['test-chunks'] }}
test-chunk-ids: ${{ steps['set-test-chunk-ids'].outputs['test-chunk-ids'] }}
env:
TESTS_NUM_CHUNKS: 3
steps:
@sppatel
sppatel / generate-chunks.mjs
Last active October 4, 2022 10:09
Generate Balanced Chunks
#!/usr/bin/env zx
import { readFileSync, writeFileSync } from 'fs';
import path from 'path';
const NUM_BUCKETS = process.env.TESTS_NUM_CHUNKS || 3;
// Download latest jest package timings for each chunk from the last green build
// on the default branch.
const downloadTimings = async () => {
@sppatel
sppatel / balance-package.js
Created August 5, 2022 16:24
Balanced Package Partitioning
/*
Returns a single bucket of packages that in total, meet target sum.
*/
const getBucket = (A, target) => {
const last = A.pop();
let sum = getTiming(last);
const result = [last];
if (A.length === 0) return result;