You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

73 lines
2.0 KiB

name: Push to Main CI
on:
push:
branches:
- main
permissions:
contents: write
packages: write
jobs:
build-and-package:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- name: Cache Deno dependencies
uses: actions/cache@v4
with:
path: ~/.cache/deno
key: ${{ runner.os }}-deno-${{ hashFiles('**/deno.lock', '**/package.json') }}
restore-keys: |
${{ runner.os }}-deno-
- name: Cache Bun dependencies
uses: actions/cache@v4
with:
path: |
~/.bun/install/cache
packages/web/node_modules
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
# --- Detect changed packages ---
- name: Get Changed Package Directories
id: changed_packages
uses: tj-actions/changed-files@v46
with:
dir_names: true
files: packages/**
- name: Build Changed Packages
if: steps.changed_packages.outputs.all_changed_and_modified_files != ''
run: |
set -euo pipefail
for pkg_dir in ${{ steps.changed_packages.outputs.all_changed_and_modified_files }}; do
echo "🔍 Inspecting $pkg_dir..."
if [[ -f "$pkg_dir/deno.lock" ]]; then
echo "🔧 Building with Bun: $pkg_dir"
(cd "$pkg_dir" && bun install && bun run build)
else
echo "⚠️ No recognizable build config in $pkg_dir — skipping"
fi
done
- name: No Changed Packages
if: steps.changed_packages.outputs.all_changed_and_modified_files == ''
run: echo "📦 No changed packages detected. Nothing to build."