Skip to content

Adds github action for astro check #4

Adds github action for astro check

Adds github action for astro check #4

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches:
- main
merge_group:
pull_request:
paths-ignore:
- ".vscode/**"
- "**/*.md"
- ".github/ISSUE_TEMPLATE/**"
# Automatically cancel older in-progress jobs on the same branch
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
env:
FORCE_COLOR: true
ASTRO_TELEMETRY_DISABLED: true
# 7 GiB by default on GitHub, setting to 6 GiB
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
NODE_OPTIONS: --max-old-space-size=6144
BUILD_PATH: "." # default value when not using subfolders
# BUILD_PATH: subfolder
jobs:
check:
name: astro check
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Detect package manager
id: detect-package-manager
run: |
if [ -f "${{ github.workspace }}/yarn.lock" ]; then
echo "manager=yarn" >> $GITHUB_OUTPUT
echo "command=install" >> $GITHUB_OUTPUT
echo "runner=yarn" >> $GITHUB_OUTPUT
echo "lockfile=yarn.lock" >> $GITHUB_OUTPUT
exit 0
elif [ -f "${{ github.workspace }}/package.json" ]; then
echo "manager=npm" >> $GITHUB_OUTPUT
echo "command=ci" >> $GITHUB_OUTPUT
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
echo "lockfile=package-lock.json" >> $GITHUB_OUTPUT
exit 0
else
echo "Unable to determine package manager"
exit 1
fi
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: ${{ steps.detect-package-manager.outputs.manager }}
cache-dependency-path: ${{ env.BUILD_PATH }}/${{ steps.detect-package-manager.outputs.lockfile }}
- name: Install dependencies
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
working-directory: ${{ env.BUILD_PATH }}
- name: Status
run: git status
- name: Astro Info
run: |
${{ steps.detect-package-manager.outputs.runner }} astro info
- name: Astro Check
run: |
${{ steps.detect-package-manager.outputs.runner }} astro check \
--minimumFailingSeverity error \
--minimumSeverity error
#
#
#
# - name: Setup PNPM
# uses: pnpm/action-setup@v3
#
# - name: Setup Node
# uses: actions/setup-node@v4
# with:
# node-version: 18
# cache: "pnpm"
#
# - name: Install dependencies
# run: pnpm install
#
# - name: Build
# run: pnpm run build
#
# - name: Status
# run: git status
#
# - name: astro check
# run: pnpm run test:check-examples
#
#
# lint:
# runs-on: ubuntu-latest
# environment: deploy
# steps:
# - name: Checkout Commit
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - name: Setup Node
# uses: actions/setup-node@v4
# with:
# node-version: "20"
# cache: ${{ steps.detect-package-manager.outputs.manager }}
# cache-dependency-path: ${{ env.BUILD_PATH }}/${{ steps.detect-package-manager.outputs.lockfile }}
# - name: Install pnpm
# run: npm i --location=global pnpm
# - name: Install dependencies
# run: pnpm install
# - name: Check
# run: pnpm astro check
# env:
# LOCALE_CI: en
# build:
# name: Build
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Detect package manager
# id: detect-package-manager
# run: |
# if [ -f "${{ github.workspace }}/yarn.lock" ]; then
# echo "manager=yarn" >> $GITHUB_OUTPUT
# echo "command=install" >> $GITHUB_OUTPUT
# echo "runner=yarn" >> $GITHUB_OUTPUT
# echo "lockfile=yarn.lock" >> $GITHUB_OUTPUT
# exit 0
# elif [ -f "${{ github.workspace }}/package.json" ]; then
# echo "manager=npm" >> $GITHUB_OUTPUT
# echo "command=ci" >> $GITHUB_OUTPUT
# echo "runner=npx --no-install" >> $GITHUB_OUTPUT
# echo "lockfile=package-lock.json" >> $GITHUB_OUTPUT
# exit 0
# else
# echo "Unable to determine package manager"
# exit 1
# fi
# - name: Setup Node
# uses: actions/setup-node@v4
# with:
# node-version: "20"
# cache: ${{ steps.detect-package-manager.outputs.manager }}
# cache-dependency-path: ${{ env.BUILD_PATH }}/${{ steps.detect-package-manager.outputs.lockfile }}
# #- name: Setup Pages
# # id: pages
# # uses: actions/configure-pages@v5
# - name: Install dependencies
# run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
# working-directory: ${{ env.BUILD_PATH }}
# - name: Build with Astro
# run: |
# ${{ steps.detect-package-manager.outputs.runner }} astro build \
# --site "${{ steps.pages.outputs.origin }}" \
# --base "${{ steps.pages.outputs.base_path }}"
# working-directory: ${{ env.BUILD_PATH }}
# lint:
# name: Lint
# runs-on: ubuntu-latest
# timeout-minutes: 5
# needs: build
# steps:
# - name: Disable git crlf
# run: git config --global core.autocrlf false
#
# - name: Checkout
# uses: actions/checkout@v4
#
# - name: Setup PNPM
# uses: pnpm/action-setup@v3
#
# - name: Setup Node
# uses: actions/setup-node@v4
# with:
# node-version: 18
# cache: "pnpm"
#
# - name: Install dependencies
# run: pnpm install
#
# - name: Build Packages
# run: pnpm run build
#
# - name: Lint
# run: pnpm run lint
##build:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout your repository using git
# uses: actions/checkout@v4
# - name: Install, build, and upload your site output
# uses: withastro/action@v2
# with:
# path: . # The root location of your Astro project inside the repository. (optional)
# node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 18. (optional)
# package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)