This action for Astro builds your static Astro project and uploads the output directory as a zipped build artifact.
For more information on configuring Astro builds, please see the Astro Documentation.
path- Optional: the root location of your Astro project inside the repository. Defaults to..node-version- Optional: the specific version of Node that should be used to build your site. Defaults to24.package-manager- Optional: the Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. Accepted values:npm,yarn,pnpm,bun, anddeno. A version tag is also accepted, for examplenpm@11.6.2,pnpm@10,bun@latest, ordeno@v2.x. If not provided, version will default tolatest.build-cmd- Optional: the command to run to build your site. Defaults todeno task buildfor sites using Deno and to<package-manager> run buildfor all other package managers.cache- Optional: enable Astro build cache to speed up subsequent builds. Caches optimized images and other build assets. Defaults totrue.cache-dir- Optional: path to the Astro cache directory (relative topath). Defaults tonode_modules/.astro. Only used whencacheistrue.out-dir- Optional: path to the output directory created by the build (relative topath). Defaults todist.artifact-name- Optional: the name of the zip file/artifact to produce. Defaults toastro-build.
Create a file at .github/workflows/build-and-archive.yml with the following content:
name: Build and Archive Astro Site
on:
# Trigger the workflow every time you push to the `main` branch
# Using a different branch name? Replace `main` with your branch’s name
push:
branches: [main]
# Allows you to run this workflow manually from the Actions tab on GitHub.
workflow_dispatch:
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout your repository using git
uses: actions/checkout@v7
- name: Install, build, and zip your site output
uses: keithnet/astroaction@v6
# with:
# path: . # The root location of your Astro project inside the repository. (optional)
# node-version: 24 # The specific version of Node that should be used to build your site. Defaults to 24. (optional)
# package-manager: pnpm@latest # Package manager to use. Automatically detected by default. (optional)
# build-cmd: pnpm run build # Custom build command. (optional)
# cache: true # Enable Astro build caching. Defaults to true. (optional)
# cache-dir: node_modules/.astro # Path to Astro cache directory. (optional)
# out-dir: dist # The output directory created by the build command. Defaults to dist. (optional)
# artifact-name: astro-build # The name of the downloaded zip artifact. Defaults to astro-build. (optional)