Skip to content

Commit edb4529

Browse files
committed
feat(v2-03): execute Phase B cutover — v2 is now the live site
- git mv src/ → legacy-v1/ (preserved for archival) - git mv site-v2/ → src/ (now the production directory) - Updated GitHub Actions workflow: Node 22 setup, npm ci, npm run build, skip_app_build: true, output_location: dist - staticwebapp.config.json moved to src/public/ with legacy URL redirects (repos/*.html → /projects/<slug>, research.html → /research, infrastructure.html → /infrastructure) - Updated .gitignore for new directory structure - Updated README.md for v2 stack - Updated AGENTS.md: v2 live, legacy-v1 archived - Build verified: 14 pages, all routes resolve, staticwebapp.config.json in dist/
1 parent 9583100 commit edb4529

File tree

110 files changed

+190
-358
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+190
-358
lines changed
Lines changed: 56 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,56 @@
1-
name: Azure Static Web Apps CI/CD
2-
3-
on:
4-
push:
5-
branches:
6-
- main
7-
pull_request:
8-
types: [opened, synchronize, reopened, closed]
9-
branches:
10-
- main
11-
12-
jobs:
13-
build_and_deploy_job:
14-
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
15-
runs-on: ubuntu-latest
16-
name: Build and Deploy Job
17-
steps:
18-
- uses: actions/checkout@v3
19-
with:
20-
submodules: true
21-
lfs: false
22-
- name: Build And Deploy
23-
id: builddeploy
24-
uses: Azure/static-web-apps-deploy@v1
25-
with:
26-
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_MANGO_FLOWER_01D3CA60F }}
27-
repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments)
28-
action: "upload"
29-
###### Repository/Build Configurations - These values can be configured to match your app requirements. ######
30-
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
31-
app_location: "./src" # App source code path
32-
api_location: "" # Api source code path - optional
33-
output_location: "." # Built app content directory - optional
34-
###### End of Repository/Build Configurations ######
35-
36-
close_pull_request_job:
37-
if: github.event_name == 'pull_request' && github.event.action == 'closed'
38-
runs-on: ubuntu-latest
39-
name: Close Pull Request Job
40-
steps:
41-
- name: Close Pull Request
42-
id: closepullrequest
43-
uses: Azure/static-web-apps-deploy@v1
44-
with:
45-
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_MANGO_FLOWER_01D3CA60F }}
46-
action: "close"
1+
name: Azure Static Web Apps CI/CD
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
types: [opened, synchronize, reopened, closed]
9+
branches:
10+
- main
11+
12+
jobs:
13+
build_and_deploy_job:
14+
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
15+
runs-on: ubuntu-latest
16+
name: Build and Deploy Job
17+
steps:
18+
- uses: actions/checkout@v3
19+
with:
20+
submodules: true
21+
lfs: false
22+
- name: Setup Node.js
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: "22"
26+
cache: "npm"
27+
cache-dependency-path: src/package-lock.json
28+
- name: Install dependencies
29+
run: npm ci
30+
working-directory: src
31+
- name: Build Astro site
32+
run: npm run build
33+
working-directory: src
34+
- name: Build And Deploy
35+
id: builddeploy
36+
uses: Azure/static-web-apps-deploy@v1
37+
with:
38+
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_MANGO_FLOWER_01D3CA60F }}
39+
repo_token: ${{ secrets.GITHUB_TOKEN }}
40+
action: "upload"
41+
app_location: "./src"
42+
api_location: ""
43+
output_location: "dist"
44+
skip_app_build: true
45+
46+
close_pull_request_job:
47+
if: github.event_name == 'pull_request' && github.event.action == 'closed'
48+
runs-on: ubuntu-latest
49+
name: Close Pull Request Job
50+
steps:
51+
- name: Close Pull Request
52+
id: closepullrequest
53+
uses: Azure/static-web-apps-deploy@v1
54+
with:
55+
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_MANGO_FLOWER_01D3CA60F }}
56+
action: "close"

.gitignore

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# ============================================================================
2-
# .gitignore for RadioAstronomy.io Website (Static HTML/CSS/JS)
2+
# .gitignore for RadioAstronomy.io Website (Astro + Tailwind + TypeScript)
33
# ============================================================================
44

55
# ----------------------------------------------------------------------------
@@ -60,13 +60,14 @@ desktop.ini
6060
# ----------------------------------------------------------------------------
6161
node_modules/
6262
package-lock.json
63-
!site-v2/package-lock.json
63+
!src/package-lock.json
6464
yarn.lock
6565

6666
# ----------------------------------------------------------------------------
67-
# ASTRO V2 BUILD OUTPUT
67+
# ASTRO BUILD OUTPUT
6868
# ----------------------------------------------------------------------------
69-
site-v2/dist/
69+
src/dist/
70+
src/.astro/
7071

7172
# ----------------------------------------------------------------------------
7273
# LARGE FILES
@@ -89,4 +90,3 @@ scratch/
8990
local/
9091
.local/
9192
*.local
92-
site-v2/.astro/

AGENTS.md

Lines changed: 25 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,52 +9,29 @@ Entry point for AI coding agents working on this repository.
99
**Live:** https://radioastronomy.io
1010
**Purpose:** Public website for the radioastronomyio GitHub organization. Showcases computational astronomy research projects, infrastructure documentation, governance practices, and the organization's open-science approach. Deployed on Azure Static Web Apps.
1111

12-
**Stack (current, v1):** HTML5, CSS3, JavaScript (vanilla), Azure Static Web Apps, GitHub Actions CI/CD
13-
**Stack (v2, in progress):** Astro, Tailwind CSS, TypeScript, Azure Static Web Apps
12+
**Stack:** Astro, Tailwind CSS, TypeScript, Azure Static Web Apps, GitHub Actions CI/CD
13+
**Legacy stack (v1, archived):** HTML5, CSS3, JavaScript (vanilla)
1414

1515
## Current State
1616

17-
**Phase:** V2 refresh in progress; v1 site remains live during development
17+
**Phase:** V2 live — cutover complete
1818
**Date:** April 2026
1919

2020
### What Exists
2121

22-
- **V1 site (live):** 9 pages under `src/` (index, research, infrastructure, 6 repo pages), vanilla HTML/CSS/JS, deployed to Azure SWA from `main`
23-
- **V1 spec-driven build:** entire v1 site built from `docs/website-reference.md` using Antigravity AI agent in ~90 minutes
24-
- **CI/CD:** GitHub Actions workflow deploys `src/` to Azure Static Web Apps on push to main
22+
- **V2 site (live):** 14 pages under `src/` built with Astro + Tailwind + TypeScript, deployed to Azure SWA from `main`
23+
- **CI/CD:** GitHub Actions workflow runs `npm ci && npm run build` in `src/`, deploys `src/dist/` to Azure Static Web Apps
2524
- **Custom domain:** radioastronomy.io via Cloudflare DNS with CNAME flattening
2625
- **Visual identity:** all graphics created with Nano Banana 3 for style consistency
27-
28-
### V2 Refresh (in progress)
29-
30-
The v2 refresh is spec-driven and runs through four Codex-executed specs in `spec/`:
31-
32-
- `v2-00-foundation.md` — Astro/Tailwind/TypeScript scaffolding, design tokens, component library, asset migration
33-
- `v2-01-marketing.md` — Home, About, Sponsors pages
34-
- `v2-02-research.md` — Research overview and 7 project pages
35-
- `v2-03-infrastructure-cutover.md` — Infrastructure page, SEO/accessibility polish, cutover from v1 to v2 (two-phase, Phase B requires explicit user approval)
36-
37-
While the refresh is in progress, `src/` remains the deployed site. V2 lives under `site-v2/` until cutover. Cutover will rename `src/``legacy-v1/` and promote `site-v2/``src/`.
26+
- **Legacy redirects:** `staticwebapp.config.json` maps old `repos/*.html` URLs to new `/projects/<slug>` routes
3827

3928
## Architecture
4029

41-
**V1 (live):** Static site with no build step. Azure SWA serves files directly from `src/`.
42-
43-
**V2 (in progress):** Astro site under `site-v2/`. Builds to `site-v2/dist/` via `npm run build`. Azure SWA serves the build output after cutover.
30+
**V2 (live):** Astro site under `src/`. Builds to `src/dist/` via `npm run build`. Azure SWA serves the build output.
31+
**V1 (archived):** Static site preserved under `legacy-v1/` for reference. No longer deployed.
4432

4533
```
46-
src/ → v1 (live) - Deployed to Azure Static Web Apps
47-
├── index.html → Landing page
48-
├── research.html → Research overview
49-
├── infrastructure.html → Infrastructure overview
50-
├── repos/ → 6 repository detail pages
51-
├── css/styles.css → Stylesheet with CSS custom properties
52-
├── js/main.js → Navigation, scroll effects, counters, lightbox
53-
├── assets/ → Site images
54-
├── sitemap.xml
55-
└── staticwebapp.config.json → Caching, headers, routing
56-
57-
site-v2/ → v2 (in progress) - Astro + Tailwind + TypeScript
34+
src/ → v2 (live) - Astro + Tailwind + TypeScript
5835
├── astro.config.mjs
5936
├── tailwind.config.mjs
6037
├── tsconfig.json
@@ -64,8 +41,19 @@ site-v2/ → v2 (in progress) - Astro + Tailwind + TypeScript
6441
│ ├── content/ → Content collections (sponsors, projects)
6542
│ ├── layouts/ → PageLayout, ProjectPageLayout
6643
│ └── pages/ → Routes
67-
└── public/
68-
└── images/ → Assets (sponsors, projects, founder, heroes, og, logo)
44+
├── public/
45+
│ └── images/ → Assets (sponsors, projects, founder, heroes, og, logo)
46+
└── staticwebapp.config.json → Caching, headers, routing, legacy redirects
47+
48+
legacy-v1/ → v1 (archived) - Original vanilla HTML/CSS/JS site
49+
├── index.html
50+
├── research.html
51+
├── infrastructure.html
52+
├── repos/ → 6 repository detail pages
53+
├── css/styles.css
54+
├── js/main.js
55+
├── assets/
56+
└── staticwebapp.config.json
6957
```
7058

7159
## Key Constraints
@@ -75,7 +63,6 @@ site-v2/ → v2 (in progress) - Astro + Tailwind + TypeScript
7563
- **Org framing.** RadioAstronomy.io is founder-led (Don Fountain) with volunteer contributors. It is NOT a "six-person team," NOT an employer, and public copy does not describe it with formalized team language. Contributors are not named on the public site unless explicitly added to a future content collection.
7664
- **Separation of hats.** Don's professional work (systems engineering for high-compliance environments) is distinct from RadioAstronomy.io (citizen science research). The site describes what the org does and mentions the founder's background briefly with a link to donaldfountain.ai. The site does NOT describe RadioAstronomy.io operations in terms of Don's professional compliance work.
7765
- **V1 site immutable during v2 refresh.** Do not modify anything under `src/` until Spec 03 Phase B cutover.
78-
- **Azure SWA free tier.** 100 GB bandwidth/month, 250 MB storage, 2 custom domains.
7966
- **Spec as source of truth.** `docs/website-reference.md` defines v1 content. `spec/v2-*.md` files define v2 content and structure.
8067

8168
## Organization Context
@@ -112,8 +99,8 @@ radioastronomyio-website/
11299
├── internal-files/ # Working documents (gitignored)
113100
├── shared/ # Cross-project utilities
114101
├── spec/ # Specifications (v2-00 through v2-03)
115-
├── src/ # v1 live site content
116-
├── site-v2/ # v2 Astro project (during refresh only)
102+
├── src/ # v2 (live) - Astro + Tailwind + TypeScript
103+
├── legacy-v1/ # v1 (archived) - Original vanilla HTML/CSS/JS site
117104
├── staging/ # Staged work (gitignored)
118105
├── work-logs/ # Development history
119106
├── AGENTS.md # This file
@@ -129,7 +116,7 @@ radioastronomyio-website/
129116
- **Frontmatter:** YAML frontmatter with tags from `docs/documentation-standards/tagging-strategy.md`
130117
- **Interior READMEs:** Every directory has one
131118
- **V1 CSS:** Uses custom properties for theming; style guide in the website spec
132-
- **V2 styling:** Tailwind utility classes with design tokens in `site-v2/tailwind.config.mjs`
119+
- **V2 styling:** Tailwind utility classes with design tokens in `src/tailwind.config.mjs`
133120
- **No PRs from agents.** Codex-executed specs commit to feature branches; user reviews and merges manually.
134121

135122
## V2 Cutover Plan
@@ -139,8 +126,6 @@ Handled by Spec 03, two-phase:
139126
- **Phase A (auto):** Infrastructure page, sitemap, SEO polish, accessibility audit. Codex completes, commits, stops.
140127
- **Phase B (manual approval):** Directory rename (`src/``legacy-v1/`, `site-v2/``src/`), workflow update, `staticwebapp.config.json` move, redirects for legacy URLs, README/AGENTS updates. Executes only after user explicit go-ahead.
141128

142-
## Related Repositories
143-
144129
| Repository | Relationship |
145130
|-----------|-------------|
146131
| `proxmox-astronomy-lab` | Featured on the site |

0 commit comments

Comments
 (0)