Skip to content

Commit

Permalink
Improve default template download speed (#12154)
Browse files Browse the repository at this point in the history
  • Loading branch information
bluwy authored Oct 10, 2024
1 parent 582f12e commit 9988dd6
Show file tree
Hide file tree
Showing 10 changed files with 170 additions and 6 deletions.
5 changes: 5 additions & 0 deletions .changeset/curvy-bikes-sing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'create-astro': minor
---

Improves default template download speed by downloading from a branch containing the template only
6 changes: 4 additions & 2 deletions .github/workflows/sync-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}

Expand Down
4 changes: 3 additions & 1 deletion examples/hackernews/.gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# build output
dist/
.output/
# generated types
.astro/

Expand All @@ -20,3 +19,6 @@ pnpm-debug.log*

# macOS-specific files
.DS_Store

# jetbrains setting folder
.idea/
24 changes: 24 additions & 0 deletions examples/integration/.gitignore
Original file line number Diff line number Diff line change
@@ -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 changes: 24 additions & 0 deletions examples/middleware/.gitignore
Original file line number Diff line number Diff line change
@@ -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 changes: 24 additions & 0 deletions examples/server-islands/.gitignore
Original file line number Diff line number Diff line change
@@ -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 changes: 24 additions & 0 deletions examples/ssr/.gitignore
Original file line number Diff line number Diff line change
@@ -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 changes: 24 additions & 0 deletions examples/starlog/.gitignore
Original file line number Diff line number Diff line change
@@ -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 changes: 24 additions & 0 deletions examples/view-transitions/.gitignore
Original file line number Diff line number Diff line change
@@ -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/
17 changes: 14 additions & 3 deletions packages/create-astro/src/actions/template.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
return `github:withastro/astro/examples/${tmpl}#${ref}`;

// 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) {
Expand All @@ -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: '.',
});
Expand Down

0 comments on commit 9988dd6

Please sign in to comment.