0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-30 22:03:56 -05:00

Improve default template download speed (#12154)

This commit is contained in:
Bjorn Lu 2024-10-10 21:32:49 +08:00 committed by GitHub
parent 582f12e1f6
commit 9988dd67e2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 170 additions and 6 deletions

View file

@ -0,0 +1,5 @@
---
'create-astro': minor
---
Improves default template download speed by downloading from a branch containing the template only

View file

@ -40,11 +40,13 @@ jobs:
# We only do sync if there are no changesets, so we don't accidentally allow users
# to clone examples that may rely on unreleased code
- name: Sync from main branch to latest branch
- name: Sync from main branch to latest and examples/* branches
if: steps.detect.outputs.has-changesets == 'false' && github.ref == 'refs/heads/main'
uses: bluwy/auto-branch-sync-action@v1
with:
map: / -> latest
map: |
/ -> latest
/examples/* -> examples/*
skip-unchanged-check: ${{ inputs.skip-unchanged-check == true }}
dry-run: ${{ inputs.dry-run == true }}

View file

@ -1,6 +1,5 @@
# build output
dist/
.output/
# generated types
.astro/
@ -20,3 +19,6 @@ pnpm-debug.log*
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

24
examples/integration/.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

24
examples/middleware/.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

24
examples/server-islands/.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

24
examples/ssr/.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

24
examples/starlog/.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

24
examples/view-transitions/.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

View file

@ -72,13 +72,25 @@ const FILES_TO_UPDATE = {
};
export function getTemplateTarget(tmpl: string, ref = 'latest') {
// Handle Starlight templates
if (tmpl.startsWith('starlight')) {
const [, starter = 'basics'] = tmpl.split('/');
return `withastro/starlight/examples/${starter}`;
return `github:withastro/starlight/examples/${starter}`;
}
// Handle third-party templates
const isThirdParty = tmpl.includes('/');
if (isThirdParty) return tmpl;
// Handle Astro templates
if (ref === 'latest') {
// `latest` ref is specially handled to route to a branch specifically
// to allow faster downloads. Otherwise giget has to download the entire
// repo and only copy a sub directory
return `github:withastro/astro#examples/${tmpl}`;
} else {
return `github:withastro/astro/examples/${tmpl}#${ref}`;
}
}
export default async function copyTemplate(tmpl: string, ctx: Context) {
@ -88,7 +100,6 @@ export default async function copyTemplate(tmpl: string, ctx: Context) {
try {
await downloadTemplate(templateTarget, {
force: true,
provider: 'github',
cwd: ctx.cwd,
dir: '.',
});