Skip to content

chore: Improve CI time#2661

Open
iwoplaza wants to merge 2 commits into
mainfrom
chore/improve-ci-time
Open

chore: Improve CI time#2661
iwoplaza wants to merge 2 commits into
mainfrom
chore/improve-ci-time

Conversation

@iwoplaza

@iwoplaza iwoplaza commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator
Before (~11min) After (~5min)
Screenshot 2026-06-30 at 18 43 41 Screenshot 2026-06-30 at 17 45 58
@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

pkg.pr.new

packages
Ready to be installed by your favorite package manager ⬇️

https://pkg.pr.new/software-mansion/TypeGPU/typegpu@168af27095e71d7a6083a0e03ba4446f8eded1a8
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/cli@168af27095e71d7a6083a0e03ba4446f8eded1a8
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/noise@168af27095e71d7a6083a0e03ba4446f8eded1a8
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/react@168af27095e71d7a6083a0e03ba4446f8eded1a8
https://pkg.pr.new/software-mansion/TypeGPU/unplugin-typegpu@168af27095e71d7a6083a0e03ba4446f8eded1a8

benchmark
view benchmark

commit
view commit

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Bundle size comparison (import * as ... in PR vs import * as ... in target):

🟢 Decreased ➖ Unchanged 🔴 Increased ❔ Unknown
0 320 0 0

import { ... } in PR vs import * as ... in PR (is the library tree-Shakeable?):

Click to reveal the results table (297 entries).
Test tsdown
d_Void.ts 87.41 kB ($${\color{red}+12094.3\%}$$)
d_sampler.ts 87.41 kB ($${\color{red}+11963.2\%}$$)
d_isPtr.ts 87.41 kB ($${\color{red}+11802.5\%}$$)
d_comparisonSampler.ts 87.42 kB ($${\color{red}+11788.3\%}$$)
d_isSizeAttrib.ts 87.42 kB ($${\color{red}+11771.9\%}$$)
d_isWgslArray.ts 87.42 kB ($${\color{red}+11771.8\%}$$)
d_isAlignAttrib.ts 87.42 kB ($${\color{red}+11756.3\%}$$)
d_isWgslStruct.ts 87.42 kB ($${\color{red}+11756.2\%}$$)
d_isAtomic.ts 87.41 kB ($${\color{red}+11755.6\%}$$)
d_isBuiltinAttrib.ts 87.42 kB ($${\color{red}+11725.2\%}$$)
d_isLocationAttrib.ts 87.42 kB ($${\color{red}+11709.8\%}$$)
d_isDecorated.ts 87.42 kB ($${\color{red}+11709.1\%}$$)
d_isInterpolateAttrib.ts 87.42 kB ($${\color{red}+11663.6\%}$$)
d_atomic.ts 87.41 kB ($${\color{red}+11390.1\%}$$)
d_ptrHandle.ts 87.41 kB ($${\color{red}+10418.3\%}$$)
d_ptrUniform.ts 87.41 kB ($${\color{red}+10406.1\%}$$)
d_ptrStorage.ts 87.41 kB ($${\color{red}+10357.0\%}$$)
d_ptrPrivate.ts 87.41 kB ($${\color{red}+10332.6\%}$$)
d_ptrFn.ts 87.41 kB ($${\color{red}+10319.9\%}$$)
d_ptrWorkgroup.ts 87.42 kB ($${\color{red}+10308.6\%}$$)
d_textureExternal.ts 87.42 kB ($${\color{red}+10154.0\%}$$)
d_textureStorage1d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage2d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage3d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage2dArray.ts 87.42 kB ($${\color{red}+8385.6\%}$$)
d_isDisarray.ts 87.41 kB ($${\color{red}+7758.8\%}$$)
d_isUnstruct.ts 87.41 kB ($${\color{red}+7758.8\%}$$)
d_isLooseDecorated.ts 87.42 kB ($${\color{red}+7711.3\%}$$)
d_isLooseData.ts 87.42 kB ($${\color{red}+7447.5\%}$$)
d_isWgslData.ts 87.41 kB ($${\color{red}+6570.0\%}$$)
d_unstruct.ts 87.41 kB ($${\color{red}+5547.3\%}$$)
d_isData.ts 87.41 kB ($${\color{red}+4735.7\%}$$)
d_deepEqual.ts 87.41 kB ($${\color{red}+3887.1\%}$$)
d_struct.ts 87.41 kB ($${\color{red}+2325.0\%}$$)
d_ref.ts 87.41 kB ($${\color{red}+1725.5\%}$$)
std_discard.ts 103.15 kB ($${\color{red}+624.8\%}$$)
std_copy.ts 103.14 kB ($${\color{red}+612.6\%}$$)
std_arrayLength.ts 103.15 kB ($${\color{red}+612.4\%}$$)
std_isBeingTranspiled.ts 103.16 kB ($${\color{red}+610.9\%}$$)
std_getTargetShaderLanguage.ts 103.16 kB ($${\color{red}+607.7\%}$$)
std_extensionEnabled.ts 103.16 kB ($${\color{red}+605.2\%}$$)
std_range.ts 103.14 kB ($${\color{red}+592.5\%}$$)
std_dpdx.ts 103.14 kB ($${\color{red}+584.2\%}$$)
std_fwidthCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdxCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdyCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_fwidthFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdxFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdyFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_fwidth.ts 103.15 kB ($${\color{red}+583.9\%}$$)
std_dpdy.ts 103.14 kB ($${\color{red}+583.9\%}$$)
d_bool.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_f16.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_f32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_i32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_u32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_u16.ts 87.41 kB ($${\color{red}+570.2\%}$$)
std_atomicLoad.ts 103.15 kB ($${\color{red}+551.5\%}$$)
std_textureBarrier.ts 103.15 kB ($${\color{red}+551.3\%}$$)
std_atomicStore.ts 103.15 kB ($${\color{red}+551.3\%}$$)
std_workgroupBarrier.ts 103.16 kB ($${\color{red}+551.1\%}$$)
std_storageBarrier.ts 103.15 kB ($${\color{red}+551.1\%}$$)
std_atomicAdd.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicAnd.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicMax.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicMin.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicSub.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicXor.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicOr.ts 103.15 kB ($${\color{red}+551.0\%}$$)
d_textureDepth2d.ts 87.42 kB ($${\color{red}+549.4\%}$$)
d_textureDepthCube.ts 87.42 kB ($${\color{red}+549.1\%}$$)
d_texture1d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture2d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture3d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_textureDepth2dArray.ts 87.42 kB ($${\color{red}+548.6\%}$$)
d_textureCube.ts 87.42 kB ($${\color{red}+548.6\%}$$)
d_textureDepthCubeArray.ts 87.42 kB ($${\color{red}+548.3\%}$$)
d_textureDepthMultisampled2d.ts 87.43 kB ($${\color{red}+548.2\%}$$)
d_texture2dArray.ts 87.42 kB ($${\color{red}+548.0\%}$$)
d_textureCubeArray.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_textureMultisampled2d.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_disarrayOf.ts 87.41 kB ($${\color{red}+480.3\%}$$)
d_vec2b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
std_subgroupAdd.ts 103.15 kB ($${\color{red}+329.3\%}$$)
std_subgroupBroadcastFirst.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupExclusiveAdd.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupExclusiveMul.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupInclusiveAdd.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupInclusiveMul.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleDown.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleXor.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupBroadcast.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleUp.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffle.ts 103.15 kB ($${\color{red}+329.3\%}$$)
std_subgroupBallot.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupElect.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAll.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAnd.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAny.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMax.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMin.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMul.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupXor.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupOr.ts 103.15 kB ($${\color{red}+329.2\%}$$)
d_formatToWGSLType.ts 87.42 kB ($${\color{red}+317.5\%}$$)
d_uint8.ts 87.41 kB ($${\color{red}+317.3\%}$$)
d_unorm10_10_10_2.ts 87.42 kB ($${\color{red}+317.3\%}$$)
d_unorm8x4_bgra.ts 87.42 kB ($${\color{red}+317.3\%}$$)
d_float16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_packedFormats.ts 87.42 kB ($${\color{red}+316.9\%}$$)
d_isPackedData.ts 87.42 kB ($${\color{red}+316.0\%}$$)
std_textureDimensions.ts 103.16 kB ($${\color{red}+300.1\%}$$)
std_textureGather.ts 103.15 kB ($${\color{red}+300.1\%}$$)
std_textureSampleBaseClampToEdge.ts 103.17 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompareLevel.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompare.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleLevel.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleBias.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleGrad.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSample.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureStore.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureLoad.ts 103.15 kB ($${\color{red}+300.0\%}$$)
d_alignmentOf.ts 87.42 kB ($${\color{red}+299.2\%}$$)
std_translation4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationX4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationY4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationZ4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity2.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity3.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_scaling4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
d_isBuiltin.ts 87.41 kB ($${\color{red}+255.1\%}$$)
d_sizeOf.ts 87.41 kB ($${\color{red}+254.4\%}$$)
d_isContiguous.ts 87.42 kB ($${\color{red}+254.3\%}$$)
d_getLongestContiguousPrefix.ts 87.43 kB ($${\color{red}+254.2\%}$$)
d_arrayOf.ts 87.41 kB ($${\color{red}+233.4\%}$$)
d_size.ts 87.41 kB ($${\color{red}+231.7\%}$$)
d_align.ts 87.41 kB ($${\color{red}+231.7\%}$$)
d_location.ts 87.41 kB ($${\color{red}+231.6\%}$$)
d_interpolate.ts 87.42 kB ($${\color{red}+231.6\%}$$)
d_invariant.ts 87.41 kB ($${\color{red}+227.0\%}$$)
d_mat4x4f.ts 87.41 kB ($${\color{red}+223.4\%}$$)
d_mat2x2f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_mat3x3f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_matToArray.ts 87.41 kB ($${\color{red}+221.8\%}$$)
d_builtin.ts 87.41 kB ($${\color{red}+204.8\%}$$)
std_unpack2x16float.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_unpack4x8unorm.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_pack2x16float.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_pack4x8unorm.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_bitcastU32toF32.ts 103.15 kB ($${\color{red}+133.2\%}$$)
std_bitcastU32toI32.ts 103.15 kB ($${\color{red}+133.2\%}$$)
std_neg.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_bitShiftRight.ts 103.15 kB ($${\color{red}+113.1\%}$$)
std_bitShiftLeft.ts 103.15 kB ($${\color{red}+113.1\%}$$)
std_add.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_div.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_mod.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_mul.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_sub.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_translate4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateX4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_scale4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateY4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateZ4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
d_memoryLayoutOf.ts 87.42 kB ($${\color{red}+108.2\%}$$)
std_and.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_or.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_select.ts 103.15 kB ($${\color{red}+99.2\%}$$)
std_allEq.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_all.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_not.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_eq.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_lt.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_ne.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_isCloseTo.ts 103.15 kB ($${\color{red}+99.2\%}$$)
std_any.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_ge.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_gt.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_le.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_dot4U8Packed.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_length.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_countTrailingZeros.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_distance.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_dot.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_countLeadingZeros.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_firstTrailingBit.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_firstLeadingBit.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_fract.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_frexp.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_modf.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_quantizeToF16.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_mix.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_countOneBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_dot4I8Packed.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_determinant.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_extractBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_faceForward.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_inverseSqrt.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_reverseBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_insertBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_smoothstep.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_normalize.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_transpose.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_saturate.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_degrees.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_radians.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_reflect.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_refract.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_acosh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_asinh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atan2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atanh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_clamp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cross.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_floor.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_ldexp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_round.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_trunc.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_acos.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_asin.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atan.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_ceil.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cosh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_exp2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_log2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sign.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sinh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sqrt.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_step.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_tanh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_abs.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cos.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_exp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_fma.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_log.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_max.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_min.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_pow.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sin.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_tan.ts 103.14 kB ($${\color{red}+56.1\%}$$)
common_fullScreenTriangle.ts 57.18 kB ($${\color{red}+41.5\%}$$)
common_writeSoA.ts 57.17 kB ($${\color{red}+38.6\%}$$)
STATIC_allImports.ts 287.21 kB ($${\color{green}-1.7\%}$$)
STATIC_d.ts 87.40 kB ($${\color{green}-2.6\%}$$)
STATIC_std.ts 103.14 kB ($${\color{green}-2.7\%}$$)

If you wish to run a comparison for other, slower bundlers, run the 'Tree-shake test' from the GitHub Actions menu.

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Resolution Time Benchmark

---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Random Branching (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.92, 1.81, 4.01, 6.06, 7.79, 10.82, 21.42, 25.73]
  line [0.89, 1.91, 4.33, 5.77, 6.88, 11.68, 20.81, 21.07]
  line [0.97, 1.95, 4.05, 6.28, 7.36, 11.47, 21.46, 22.57]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Linear Recursion (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.26, 0.57, 0.71, 0.80, 1.10, 1.12, 1.37, 1.57]
  line [0.32, 0.58, 0.68, 0.80, 1.20, 1.19, 1.43, 1.56]
  line [0.28, 0.54, 0.65, 0.83, 1.15, 1.25, 1.47, 1.66]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Full Tree (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.83, 2.02, 3.77, 6.17, 12.22, 25.39, 55.09, 113.34]
  line [0.78, 2.09, 4.29, 6.16, 11.72, 25.27, 54.54, 109.79]
  line [0.75, 1.94, 3.67, 6.08, 12.17, 25.64, 55.91, 112.07]
Loading
@iwoplaza iwoplaza force-pushed the chore/improve-ci-time branch 5 times, most recently from 48bcc00 to 29ab46e Compare June 30, 2026 14:57
@iwoplaza iwoplaza force-pushed the chore/improve-ci-time branch from 29ab46e to cd0ad83 Compare June 30, 2026 15:39
@iwoplaza iwoplaza marked this pull request as ready for review June 30, 2026 16:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to cut CI runtime by reducing unnecessary TypeScript scope and splitting the previous monolithic CI work into smaller, more focused GitHub Actions workflows.

Changes:

  • Split CI into dedicated workflows for unit (source), unit (built), miscellaneous checks (style/types/circular deps), and docs build.
  • Reduce TypeScript project scope via expanded exclude in the root tsconfig.json, and add an app-specific tsconfig.json for apps/infra-benchmarks.
  • Disable Vitest per-file isolation for select test projects to speed up execution.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tsconfig.json Excludes more paths (node_modules/apps) from the root TS program to reduce type-aware workload.
packages/typegpu/vitest.config.mts Turns off Vitest isolation for the typegpu package test project.
apps/typegpu-docs/vitest.config.mts Turns off Vitest isolation for the docs “individual-example-tests” project.
apps/infra-benchmarks/tsconfig.json Adds a local TS config for the infra-benchmarks app.
.github/workflows/test-unit.yml New workflow to run unit tests on source.
.github/workflows/test-built-unit.yml New workflow to run unit tests against built packages.
.github/workflows/test-misc.yml New workflow for style, types, and circular dependency checks.
.github/workflows/test-docs.yml Renames/specializes the docs workflow to only build docs (with concurrency).
Comments suppressed due to low confidence (1)

.github/workflows/test-docs.yml:37

  • typegpu-docs’s build script already runs astro check (see apps/typegpu-docs/package.json). Since the new Test miscellaneous workflow also runs pnpm test:types (which runs astro check as well), this ends up repeating the same type-check in CI.

If CI time is the priority, consider invoking astro build directly here (after transform-overloads) and relying on the separate types job for astro check.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 19 to 21
globalSetup: ['setupVitest.ts'],
isolate: false,
},

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When tests touch metadata maps, the keys are local definitions within the test itself, so it shouldn't be a problem

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, did you check how much does this change alone speed up tests?

Comment on lines 39 to 44
test: {
name: 'individual-example-tests',
root: './tests/individual-example-tests',
environment: 'node',
isolate: false,
},

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — split the single ci.yml workflow into four parallel jobs and disabled Vitest test isolation to cut CI wall time roughly in half.

  • Split CI into parallel workflowstest-unit.yml, test-built-unit.yml, test-misc.yml, and test-docs.yml run the former pnpm test + docs build in parallel.
  • Added concurrency cancellation — redundant runs on the same ref are cancelled for each workflow.
  • Disabled Vitest isolationisolate: false in packages/typegpu/vitest.config.mts and the individual-example-tests project speeds up runs; fixtures clean up per test so this looks safe.
  • Added apps/infra-benchmarks/tsconfig.json — gives the app its own TS config now that apps/** is excluded from the root tsconfig.

Pullfrog�� | View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

@cieplypolar cieplypolar left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 🚀 🏎️

@aleksanderkatan aleksanderkatan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing! 🐎🧑‍🍳

Image
Comment on lines 19 to 21
globalSetup: ['setupVitest.ts'],
isolate: false,
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, did you check how much does this change alone speed up tests?

@aleksanderkatan aleksanderkatan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was meant to be an approve

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — reverted the isolate: false Vitest optimization while keeping the split workflows and reduced TypeScript project scope.

  • Re-enabled per-file test isolation — removed isolate: false from packages/typegpu/vitest.config.mts and the docs individual-example-tests project. This is the right call if disabling isolation caused flaky or interdependent tests.
  • Workflow split remains intact — four parallel workflows (test-unit.yml, test-built-unit.yml, test-misc.yml, test-docs.yml) plus concurrency cancellation still deliver the CI wall-time improvement.
  • Reduced TypeScript scope unchanged — root tsconfig.json still excludes apps/** and node_modules, with apps/infra-benchmarks/tsconfig.json providing a local config.

ℹ️ Nitpicks

  • The new commit is titled TEMP add back isolation; consider rewording it before merge so the history doesn't carry a "TEMP" marker.

Pullfrog  | View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

@iwoplaza

iwoplaza commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator Author

Out of curiosity, did you check how much does this change alone speed up tests?

@aleksanderkatan It seems like it only marginally improves the time of unit tests, and that wasn't even the bottleneck, so I think I'll revert those changes for the sake of staying on the safe side in terms of side-effects and overlapping tests.

@iwoplaza iwoplaza force-pushed the chore/improve-ci-time branch from 68b5a27 to 168af27 Compare July 1, 2026 20:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

4 participants