local testing(version, arch) = { kind: 'pipeline', type: 'docker', name: '%s-%s' % [version, arch], platform: { arch: arch, }, steps: [ { name: 'lint-backend', image: 'golangci/golangci-lint', commands: [ 'make lint-backend', ], }, { name: 'lint-frontend', image: 'guergeiro/pnpm', commands: [ 'pnpm i', 'make lint-frontend', ], }, { name: 'cache', image: 'golang:%s' % [version], commands: [ 'go mod tidy', ], depends_on: [ 'lint-backend', 'lint-frontend', ], volumes: [ { name: 'cache', path: '/go', }, ], }, { name: 'test', image: 'golang:%s' % [version], commands: [ 'make test-backend', ], depends_on: [ 'cache', ], volumes: [ { name: 'cache', path: '/go', }, ], }, ], }; [ testing('1.19', 'amd64'), testing('1.19', 'arm64'), testing('1.20', 'amd64'), testing('1.20', 'arm64'), ]