Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: vercel/turborepo
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.5.5
Choose a base ref
...
head repository: vercel/turborepo
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.6.0
Choose a head ref
Loading
Showing with 28,051 additions and 2,070 deletions.
  1. +3 −0 .editorconfig
  2. +1 −1 .github/actions/setup-node/action.yml
  3. +6 −0 .github/renovate.json
  4. +93 −0 .github/workflows/build_go_lib.yml
  5. +192 −0 .github/workflows/build_rust.yml
  6. +1 −1 .github/workflows/pr-go-run-examples.yml
  7. +118 −29 .github/workflows/release.yml
  8. +43 −0 .github/workflows/stage.yml
  9. +3 −0 .gitignore
  10. +13 −4 .vscode/launch.json
  11. +3 −0 .vscode/settings.json
  12. +0 −40 buildcontainer/.chglog/CHANGELOG.tpl.md
  13. +0 −28 buildcontainer/.chglog/config.yaml
  14. +4 −5 buildcontainer/.env
  15. +0 −99 buildcontainer/.github/workflows/release.yaml
  16. +6 −65 buildcontainer/Dockerfile
  17. +6 −2 buildcontainer/Dockerfile.base
  18. +42 −21 buildcontainer/Makefile
  19. +31 −22 buildcontainer/README.md
  20. +0 −1 buildcontainer/osxcross
  21. +0 −30 buildcontainer/patches/libcxx.patch
  22. +0 −40 buildcontainer/scripts/genchangelog.sh
  23. +0 −45 buildcontainer/scripts/image-tags.sh
  24. +0 −12 buildcontainer/scripts/is_prerelease.sh
  25. +0 −240 buildcontainer/scripts/semver.sh
  26. +0 −161 buildcontainer/scripts/sysroot-rsync.sh
  27. BIN buildcontainer/tars/MacOSX10.15.sdk.tar.xz
  28. BIN buildcontainer/tars/MacOSX11.1.sdk.tar.xz
  29. BIN buildcontainer/tars/MacOSX11.3.sdk.tar.xz
  30. BIN buildcontainer/tars/MacOSX12.0.sdk.tar.xz
  31. +1 −0 cli/.gitignore
  32. +2 −0 cli/.golangci.yml
  33. +0 −93 cli/.goreleaser.yaml
  34. +112 −15 cli/Makefile
  35. +13 −0 cli/cmd/turbo/main.go
  36. +1 −1 cli/cmd/turbo/version.go
  37. +75 −0 cli/combined-release.yml
  38. +75 −0 cli/combined-shim.yml
  39. +67 −0 cli/cross-lib.yml
  40. +53 −0 cli/cross-release.yml
  41. +29 −0 cli/darwin-lib.yml
  42. +28 −0 cli/darwin-release.yml
  43. +6 −4 cli/go.mod
  44. +4 −0 cli/go.sum
  45. +81 −0 cli/integration_tests/lockfile_aware_caching/berry.t
  46. +2 −0 cli/integration_tests/lockfile_aware_caching/berry/.yarnrc.yml
  47. +11 −0 cli/integration_tests/lockfile_aware_caching/berry/package.json
  48. +11 −0 cli/integration_tests/lockfile_aware_caching/berry/turbo-bump.patch
  49. +13 −0 cli/integration_tests/lockfile_aware_caching/berry/yarn-lock.patch
  50. +115 −0 cli/integration_tests/lockfile_aware_caching/berry/yarn.lock
  51. +9 −0 cli/integration_tests/lockfile_aware_caching/monorepo/apps/a/package.json
  52. +9 −0 cli/integration_tests/lockfile_aware_caching/monorepo/apps/b/package.json
  53. +9 −0 cli/integration_tests/lockfile_aware_caching/monorepo/turbo.json
  54. +105 −0 cli/integration_tests/lockfile_aware_caching/npm.t
  55. +220 −0 cli/integration_tests/lockfile_aware_caching/npm/package-lock.json
  56. +11 −0 cli/integration_tests/lockfile_aware_caching/npm/package-lock.patch
  57. +10 −0 cli/integration_tests/lockfile_aware_caching/npm/package.json
  58. +11 −0 cli/integration_tests/lockfile_aware_caching/npm/turbo-bump.patch
  59. +105 −0 cli/integration_tests/lockfile_aware_caching/pnpm.t
  60. +10 −0 cli/integration_tests/lockfile_aware_caching/pnpm/package.json
  61. +16 −0 cli/integration_tests/lockfile_aware_caching/pnpm/pnpm-lock.patch
  62. +93 −0 cli/integration_tests/lockfile_aware_caching/pnpm/pnpm-lock.yaml
  63. +2 −0 cli/integration_tests/lockfile_aware_caching/pnpm/pnpm-workspace.yaml
  64. +20 −0 cli/integration_tests/lockfile_aware_caching/pnpm/turbo-bump.patch
  65. +15 −0 cli/integration_tests/lockfile_aware_caching/setup.sh
  66. +105 −0 cli/integration_tests/lockfile_aware_caching/yarn.t
  67. +55 −0 cli/integration_tests/lockfile_aware_caching/yarn/new-lock
  68. +11 −0 cli/integration_tests/lockfile_aware_caching/yarn/package.json
  69. +11 −0 cli/integration_tests/lockfile_aware_caching/yarn/turbo-bump.patch
  70. +11 −0 cli/integration_tests/lockfile_aware_caching/yarn/yarn-lock.patch
  71. +55 −0 cli/integration_tests/lockfile_aware_caching/yarn/yarn.lock
  72. +3 −0 cli/integration_tests/monorepo_one_script_error/monorepo/.gitignore
  73. +6 −0 cli/integration_tests/monorepo_one_script_error/monorepo/apps/my-app/package.json
  74. +6 −0 cli/integration_tests/monorepo_one_script_error/monorepo/package.json
  75. +8 −0 cli/integration_tests/monorepo_one_script_error/monorepo/turbo.json
  76. +54 −0 cli/integration_tests/monorepo_one_script_error/run.t
  77. +6 −0 cli/integration_tests/monorepo_one_script_error/setup.sh
  78. +3 −2 cli/integration_tests/single_package/dry-run.t
  79. +4 −4 cli/integration_tests/single_package/run.t
  80. +7 −5 cli/integration_tests/single_package_deps/dry-run.t
  81. +6 −6 cli/integration_tests/single_package_deps/run.t
  82. +3 −2 cli/integration_tests/single_package_no_config/dry-run.t
  83. +4 −4 cli/integration_tests/single_package_no_config/run.t
  84. +2 −2 cli/integration_tests/turbo_help.t
  85. +2 −2 cli/internal/cache/cache.go
  86. +49 −53 cli/internal/cache/cache_fs.go
  87. +62 −44 cli/internal/cache/cache_fs_test.go
  88. +14 −14 cli/internal/cache/cache_http.go
  89. +8 −7 cli/internal/cache/cache_http_test.go
  90. +76 −0 cli/internal/cacheitem/cacheitem.go
  91. +119 −0 cli/internal/cacheitem/create.go
  92. +205 −0 cli/internal/cacheitem/create_test.go
  93. +20 −0 cli/internal/cacheitem/create_unix_test.go
  94. +14 −0 cli/internal/cacheitem/create_windows_test.go
  95. +162 −0 cli/internal/cacheitem/filepath.go
  96. +14 −0 cli/internal/cacheitem/filepath_unix.go
  97. +50 −0 cli/internal/cacheitem/filepath_windows.go
  98. +200 −0 cli/internal/cacheitem/restore.go
  99. +144 −0 cli/internal/cacheitem/restore_directory.go
  100. +103 −0 cli/internal/cacheitem/restore_directory_test.go
  101. +46 −0 cli/internal/cacheitem/restore_regular.go
  102. +180 −0 cli/internal/cacheitem/restore_symlink.go
  103. +1,493 −0 cli/internal/cacheitem/restore_test.go
  104. +1 −1 cli/internal/client/client.go
  105. +2 −2 cli/internal/cmd/root.go
  106. +1 −1 cli/internal/cmdutil/cmdutil.go
  107. +12 −5 cli/internal/colorcache/colorcache.go
  108. +74 −33 cli/internal/context/context.go
  109. +65 −61 cli/internal/core/{scheduler.go → engine.go}
  110. +24 −24 cli/internal/core/{scheduler_test.go → engine_test.go}
  111. +5 −1 cli/internal/daemon/connector/connector.go
  112. +6 −3 cli/internal/daemonclient/daemonclient.go
  113. +6 −0 cli/internal/filewatcher/backend_darwin.go
  114. +1 −1 cli/internal/filewatcher/cookie.go
  115. +5 −5 cli/internal/filewatcher/filewatcher_test.go
  116. +0 −55 cli/internal/fs/find_up.go
  117. +100 −23 cli/internal/fs/package_json.go
  118. +174 −0 cli/internal/fs/package_json_test.go
  119. +2 −1 cli/internal/fs/testdata/both/turbo.json
  120. +1 −0 cli/internal/fs/testdata/correct/turbo.json
  121. +34 −14 cli/internal/fs/turbo_json.go
  122. +13 −8 cli/internal/fs/turbo_json_test.go
  123. +36 −3 cli/internal/globby/globby.go
  124. +203 −33 cli/internal/globby/globby_test.go
  125. +52 −11 cli/internal/globwatcher/globwatcher.go
  126. +90 −10 cli/internal/globwatcher/globwatcher_test.go
  127. +1 −1 cli/internal/hashing/package_deps_hash_test.go
  128. +15 −6 cli/internal/lockfile/berry_lockfile.go
  129. +48 −9 cli/internal/lockfile/berry_lockfile_test.go
  130. +11 −1 cli/internal/lockfile/lockfile.go
  131. +238 −0 cli/internal/lockfile/npm_lockfile.go
  132. +205 −0 cli/internal/lockfile/npm_lockfile_test.go
  133. +66 −23 cli/internal/lockfile/pnpm_lockfile.go
  134. +40 −3 cli/internal/lockfile/pnpm_lockfile_test.go
  135. +6,553 −0 cli/internal/lockfile/testdata/npm-lock.json
  136. +10 −1 cli/internal/lockfile/testdata/pnpm7-workspace.yaml
  137. +7 −3 cli/internal/lockfile/yarn_lockfile.go
  138. +2 −0 cli/internal/login/link.go
  139. +2 −0 cli/internal/login/login.go
  140. +1 −0 cli/internal/login/status.go
  141. +28 −2 cli/internal/logstreamer/logstreamer.go
  142. +8 −4 cli/internal/nodes/packagetask.go
  143. +38 −0 cli/internal/packagemanager/berry.go
  144. +146 −0 cli/internal/packagemanager/infer_root.go
  145. +347 −0 cli/internal/packagemanager/infer_root_test.go
  146. +9 −0 cli/internal/packagemanager/npm.go
  147. +13 −3 cli/internal/packagemanager/packagemanager.go
  148. +1 −1 cli/internal/packagemanager/packagemanager_test.go
  149. +47 −1 cli/internal/packagemanager/pnpm.go
  150. +69 −29 cli/internal/prune/prune.go
  151. +5 −4 cli/internal/run/global_hash.go
  152. +124 −110 cli/internal/run/run.go
  153. +5 −5 cli/internal/run/run_test.go
  154. +7 −3 cli/internal/runcache/output_watcher.go
  155. +60 −38 cli/internal/runcache/runcache.go
  156. +4 −3 cli/internal/scm/scm.go
  157. +3 −5 cli/internal/scope/filter/filter.go
  158. +22 −6 cli/internal/scope/scope.go
  159. +41 −0 cli/internal/scope/scope_test.go
  160. +7 −1 cli/internal/server/server.go
  161. +8 −2 cli/internal/taskhash/taskhash.go
  162. +1 −0 cli/internal/turbodprotocol/turbod.proto
  163. +57 −3 cli/internal/turbopath/absolute_system_path.go
  164. +23 −0 cli/internal/turbopath/absolute_system_path_darwin.go
  165. +13 −0 cli/internal/turbopath/absolute_system_path_notdarwin.go
  166. +71 −0 cli/internal/turbopath/absolute_system_path_test.go
  167. +5 −0 cli/internal/turbopath/anchored_system_path.go
  168. +1 −1 cli/internal/util/backends.go
  169. +6 −1 cli/internal/util/status.go
  170. +747 −0 cli/internal/yaml/apic.go
  171. +1,000 −0 cli/internal/yaml/decode.go
  172. +2,019 −0 cli/internal/yaml/emitterc.go
  173. +577 −0 cli/internal/yaml/encode.go
  174. +1,274 −0 cli/internal/yaml/parserc.go
  175. +434 −0 cli/internal/yaml/readerc.go
  176. +326 −0 cli/internal/yaml/resolve.go
  177. +3,040 −0 cli/internal/yaml/scannerc.go
  178. +134 −0 cli/internal/yaml/sorter.go
  179. +48 −0 cli/internal/yaml/writerc.go
  180. +693 −0 cli/internal/yaml/yaml.go
  181. +809 −0 cli/internal/yaml/yamlh.go
  182. +198 −0 cli/internal/yaml/yamlprivateh.go
  183. +3 −1 cli/package.json
  184. +91 −31 cli/scripts/e2e/e2e.ts
  185. +8 −4 cli/scripts/monorepo.ts
  186. +3 −0 docs/.gitignore
  187. +1 −1 docs/components/Feature.tsx
  188. +6 −0 docs/components/clients/users.ts
  189. +43 −2 docs/next.config.js
  190. +9 −5 docs/package.json
  191. +17 −0 docs/pages/_error.js
  192. +4 −4 docs/pages/api/signup.tsx
  193. +18 −18 docs/pages/api/user/[id].tsx
  194. +1 −0 docs/pages/blog/joining-vercel.mdx
  195. +1 −0 docs/pages/blog/turbo-0-4-0.mdx
  196. +7 −7 docs/pages/docs/ci/github-actions.mdx
  197. +1 −1 docs/pages/docs/core-concepts/running-tasks.mdx
  198. +1 −1 docs/pages/docs/getting-started/create-new.mdx
  199. +4 −0 docs/pages/docs/getting-started/existing-monorepo.mdx
  200. +88 −0 docs/pages/docs/handbook/dev.mdx
  201. +1 −1 docs/pages/docs/handbook/what-is-a-monorepo.mdx
  202. +2 −2 docs/pages/docs/handbook/workspaces.mdx
  203. +6 −0 docs/pages/docs/reference/command-line-reference.mdx
  204. +1 −0 docs/public/images/logos/color/agrotoken.svg
  205. +1 −0 docs/public/images/logos/white/agrotoken.svg
  206. +58 −0 docs/scripts/generate-rss.js
  207. +16 −0 docs/sentry.client.config.js
  208. +4 −0 docs/sentry.properties
  209. +11 −0 docs/sentry.server.config.js
  210. +7 −6 docs/theme.config.js
  211. +1 −1 examples/basic/packages/ui/package.json
  212. +1 −1 examples/design-system/packages/acme-core/package.json
  213. +1 −1 examples/design-system/packages/acme-utils/package.json
  214. +1 −1 examples/design-system/turbo.json
  215. +1 −1 examples/kitchen-sink/apps/admin/package.json
  216. +1 −1 examples/kitchen-sink/apps/api/package.json
  217. +1 −0 examples/kitchen-sink/apps/api/src/index.ts
  218. +1 −1 examples/kitchen-sink/packages/logger/package.json
  219. +1 −1 examples/kitchen-sink/packages/ui/package.json
  220. +1 −1 examples/with-changesets/README.md
  221. +1 −1 examples/with-changesets/apps/docs/package.json
  222. +1 −1 examples/with-changesets/packages/acme-core/package.json
  223. +1 −1 examples/with-changesets/packages/acme-utils/package.json
  224. +1 −1 examples/with-create-react-app/apps/docs/package.json
  225. +1 −1 examples/with-create-react-app/apps/web/package.json
  226. +1 −1 examples/with-create-react-app/packages/ui/package.json
  227. +2 −0 examples/with-docker/apps/api/Dockerfile
  228. +1 −1 examples/with-docker/apps/api/package.json
  229. +1 −0 examples/with-docker/apps/api/src/index.ts
  230. +2 −0 examples/with-docker/apps/web/Dockerfile
  231. +1 −1 examples/with-docker/packages/logger/package.json
  232. +1 −1 examples/with-docker/packages/ui/package.json
  233. +1 −1 examples/with-pnpm/packages/ui/package.json
  234. +1 −1 examples/with-prisma/packages/database/package.json
  235. +1 −1 examples/with-react-native-web/packages/tsconfig/react-native-library.json
  236. +1 −1 examples/with-react-native-web/packages/ui/package.json
  237. +2 −3 examples/with-svelte/apps/docs/package.json
  238. 0 examples/with-svelte/apps/docs/src/routes/{index.svelte → +page.svelte}
  239. +2 −3 examples/with-svelte/apps/web/package.json
  240. 0 examples/with-svelte/apps/web/src/routes/{index.svelte → +page.svelte}
  241. +1 −1 examples/with-svelte/packages/ui/package.json
  242. +1 −1 examples/with-svelte/turbo.json
  243. +1 −1 examples/with-vite/apps/docs/package.json
  244. +1 −1 examples/with-vite/apps/web/package.json
  245. +1 −1 examples/with-vite/packages/ui/package.json
  246. +2 −2 packages/create-turbo/package.json
  247. +1 −1 packages/create-turbo/templates/_shared_ts/packages/ui/package.json
  248. +8 −0 packages/eslint-config-turbo/package.json
  249. +8 −0 packages/eslint-plugin-turbo/package.json
  250. +2 −2 packages/turbo-codemod/package.json
  251. +1 −1 packages/turbo-types/package.json
  252. +7 −7 packages/turbo/package.json
  253. +598 −106 pnpm-lock.yaml
  254. +71 −0 scripts/ignore-examples.js
  255. +0 −164 scripts/run-examples.sh
  256. +1 −0 shim/.gitignore
  257. +601 −0 shim/Cargo.lock
  258. +21 −0 shim/Cargo.toml
  259. +53 −0 shim/build.rs
  260. +1 −0 shim/rust-toolchain
  261. +264 −0 shim/src/main.rs
  262. +109 −0 shim/src/package_manager.rs
  263. +43 −0 shim/tests/mod.rs
  264. +5 −1 turbo.json
  265. +1 −1 version.txt
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -9,6 +9,9 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.rs]
indent_size = 4

[*.t]
trim_trailing_whitespace = false

2 changes: 1 addition & 1 deletion .github/actions/setup-node/action.yml
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ runs:
using: "composite"
steps:
- name: Setup pnpm
uses: pnpm/action-setup@v2.2.2
uses: pnpm/action-setup@v2.2.3
with:
version: 7.2.1

6 changes: 6 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -14,6 +14,12 @@
"before 5am every weekday",
"every weekend"
],
"packageRules": [
{
"matchLanguages": ["golang"],
"enabled": false
}
],
"prCreation": "not-pending",
"prConcurrentLimit": 5,
"stabilityDays": 2
93 changes: 93 additions & 0 deletions .github/workflows/build_go_lib.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Build Go Library

env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

on:
workflow_dispatch:
inputs:
release_branch:
description: "Staging branch to run release from"

jobs:
smoke-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ inputs.release_branch }}
- uses: ./.github/actions/setup-node
with:
enable-corepack: false
- uses: ./.github/actions/setup-go
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Test
run: pnpm -- turbo run test --filter=cli --color

darwin:
needs: [smoke-test]
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ inputs.release_branch }}
- run: git fetch origin --tags
- uses: ./.github/actions/setup-node
with:
enable-corepack: false
- uses: ./.github/actions/setup-go
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v3
with:
distribution: goreleaser-pro
version: latest
install-only: true
env:
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
- name: Build Artifacts
run: cd cli && make build-lib-turbo-darwin
env:
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: turbo-lib-darwin-${{ inputs.release_branch }}
path: cli/dist-darwin

# compiles linux and windows in a container
cross:
needs: [smoke-test]
runs-on: ubuntu-latest
container:
image: docker://ghcr.io/vercel/turbo-cross:v1.18.5
steps:
- uses: actions/checkout@v3
with:
ref: "${{ inputs.release_branch }}"
- run: git fetch origin --tags
- uses: ./.github/actions/setup-node
with:
enable-corepack: false
- uses: ./.github/actions/setup-go
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v3
with:
distribution: goreleaser-pro
version: latest
install-only: true
env:
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
- name: Build Artifacts
run: cd cli && make build-lib-turbo-cross
env:
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: turbo-lib-cross-${{ inputs.release_branch }}
path: cli/dist-cross
192 changes: 192 additions & 0 deletions .github/workflows/build_rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
name: Build Rust Wrapper

on:
workflow_dispatch:
inputs:
release_branch:
description: "Staging branch to run release from"

jobs:
build-native:
name: "Build Native"
strategy:
fail-fast: false
matrix:
settings:
- host: macos-latest
target: "x86_64-apple-darwin"
lib-cache-key: turbo-lib-darwin-${{ inputs.release_branch }}
- host: macos-latest
target: "aarch64-apple-darwin"
lib-cache-key: turbo-lib-darwin-${{ inputs.release_branch }}
- host: ubuntu-latest
target: "x86_64-unknown-linux-gnu"
lib-cache-key: turbo-lib-cross-${{ inputs.release_branch }}
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
- host: ubuntu-latest
target: "aarch64-unknown-linux-gnu"
lib-cache-key: turbo-lib-cross-${{ inputs.release_branch }}
rustflags: 'RUSTFLAGS="-C linker=aarch64-linux-gnu-gcc"'
setup: "sudo apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu"
- host: windows-latest
target: x86_64-pc-windows-gnu
lib-cache-key: turbo-lib-cross-${{ inputs.release_branch }}
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v3
with:
ref: "${{ inputs.release_branch }}"

- name: Install
uses: actions-rs/toolchain@v1
if: ${{ !matrix.settings.docker }}
with:
profile: minimal
override: true
# TODO: copied from turbo tooling, may need to make this file-driven
toolchain: nightly-2022-09-23
target: ${{ matrix.settings.target }}

# - name: Cache cargo registry
# uses: actions/cache@v3
# with:
# path: ~/.cargo/registry
# key: ${{ matrix.settings.target }}-cargo-registry

# - name: Cache cargo index
# uses: actions/cache@v3
# with:
# path: ~/.cargo/git
# key: ${{ matrix.settings.target }}-cargo-index

- name: Download artifact
id: download-artifact
uses: dawidd6/action-download-artifact@v2
with:
# Optional, workflow file name or ID
# If not specified, will be inferred from run_id (if run_id is specified), or will be the current workflow
workflow: build_go_lib.yml
# Optional, the status or conclusion of a completed workflow to search for
# Can be one of a workflow conclusion:
# "failure", "success", "neutral", "cancelled", "skipped", "timed_out", "action_required"
# Or a workflow status:
# "completed", "in_progress", "queued"
# Use the empty string ("") to ignore status or conclusion in the search
workflow_conclusion: success
# Optional, will use the specified branch. Defaults to all branches
branch: ${{ inputs.release_branch }}
# Optional, uploaded artifact name,
# will download all artifacts if not specified
# and extract them into respective subdirectories
# https://github.com/actions/download-artifact#download-all-artifacts
name: ${{ matrix.settings.lib-cache-key }}
# Optional, a directory where to extract artifact(s), defaults to the current directory
path: shim/libturbo
# Optional, choose how to exit the action if no artifact is found
# can be one of:
# "fail", "warn", "ignore"
# default fail
if_no_artifact_found: fail

# TODO: re-enable this instead of the above when this runs together with the go library build
# - name: Download Cross-compiled Artifacts
# uses: actions/download-artifact@v3
# with:
# name: ${{ matrix.settings.lib-cache-key }}
# path: shim/libturbo
- name: Build Setup
if: ${{ matrix.settings.setup }}
run: ${{ matrix.settings.setup }}

- name: Build
if: ${{ !matrix.settings.docker }}
run: cd shim && ${{ matrix.settings.rustflags }} cargo build --release --target ${{ matrix.settings.target }}

- name: Build in Docker
if: ${{ matrix.settings.docker }}
run: cd shim && ${{ matrix.settings.rustflags }} cargo build --release --target ${{ matrix.settings.target }}

- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: shim-${{ matrix.settings.target }}
path: shim/target/${{ matrix.settings.target }}/release/turbo*

final-publish:
name: "Publish To NPM"
runs-on: ubuntu-latest
needs: [build-native]
steps:
- uses: actions/checkout@v3
with:
ref: "${{ inputs.release_branch }}"
- run: git fetch origin --tags
- uses: ./.github/actions/setup-node
with:
enable-corepack: false
- uses: ./.github/actions/setup-go
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

- name: Configure git
run: |
git config --global user.name 'Turbobot'
git config --global user.email 'turbobot@vercel.com'
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v3
with:
distribution: goreleaser-pro
version: latest
install-only: true
env:
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}

- name: Download Apple ARM64 Artifacts
uses: actions/download-artifact@v3
with:
name: shim-aarch64-apple-darwin
path: cli/dist-darwin-arm64

- name: Download Ubuntu ARM64 Artifacts
uses: actions/download-artifact@v3
with:
name: shim-aarch64-unknown-linux-gnu
path: cli/dist-linux-arm64

- name: Download Windows ARM64 (Ships as x86_64) Artifacts
uses: actions/download-artifact@v3
with:
name: shim-x86_64-pc-windows-gnu
path: cli/dist-windows-arm64

- name: Download Ubuntu x86_64 Artifacts
uses: actions/download-artifact@v3
with:
name: shim-x86_64-unknown-linux-gnu
path: cli/dist-linux-amd64

- name: Download Apple x86_64 Artifacts
uses: actions/download-artifact@v3
with:
name: shim-x86_64-apple-darwin
path: cli/dist-darwin-amd64

- name: Download Windows x86_64 Artifacts
uses: actions/download-artifact@v3
with:
name: shim-x86_64-pc-windows-gnu
path: cli/dist-windows-amd64

- name: Perform Release
run: cd cli && make publish-shim
env:
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

# TODO: probably don't need to upload this once we've verified the snapshots
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: shim-combined
path: cli/dist
2 changes: 1 addition & 1 deletion .github/workflows/pr-go-run-examples.yml
Original file line number Diff line number Diff line change
@@ -47,7 +47,7 @@ jobs:
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

- uses: pnpm/action-setup@v2.2.2
- uses: pnpm/action-setup@v2.2.3
with:
version: 7.2.1

Loading