Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions .github/workflows/release-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: "Release Branch Check"

on:
pull_request:
branches:
- prod

jobs:
check_branch:
name: Verify Branch Source
runs-on: ubuntu-latest
steps:
- name: Check Source Branch
env:
SOURCE_BRANCH: ${{ github.head_ref }}
run: |
ALLOWED_BRANCH="main"

echo "Pull Request from branch $SOURCE_BRANCH"

if [ "$SOURCE_BRANCH" != "$ALLOWED_BRANCH" ]; then
echo "ERROR: Merges to the 'prod' are only allowed from the $ALLOWED_BRANCH branch."
exit 1
fi

check_sync:
name: Verify Branch Sync
runs-on: ubuntu-latest
needs: check_branch
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Fetch both branches
run: |
git fetch origin main prod

- name: Check if prod is ancestor of main
id: check_ancestor
run: |
COMMAND="git merge-base --is-ancestor origin/prod origin/main"
if $COMMAND; then
echo "βœ… main is in sync with prod"
echo "sync_status=ok" >> $GITHUB_OUTPUT
else
echo "❌ main is NOT in sync with prod"
echo "sync_status=out_of_sync" >> $GITHUB_OUTPUT
fi

- name: Comment on PR if out of sync
if: ${{ steps.check_ancestor.outputs.sync_status == 'out_of_sync' }}
uses: actions/github-script@v7
with:
script: |
const body = `
⚠️ **Sync Check Failed**

The \`main\` branch is **not in sync** with \`prod\`.

Please run the following locally to fix it:
\`\`\`bash
git fetch origin main prod
git checkout main
git merge --ff-only origin/prod || git merge origin/prod --strategy=ours -m "Sync main with prod"
git push origin main
\`\`\`

After syncing, re-run this workflow or update the PR.
`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body
});
core.setFailed("main is out of sync with prod");
62 changes: 62 additions & 0 deletions .github/workflows/release-tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: "Auto Tagging"

on:
push:
branches:
- prod

permissions:
contents: write

jobs:
tag_release:
name: Create Tag - vX.X.X
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Read version from package.json
id: pkg
run: |
VERSION=$(node -p "require('./package.json').version")
echo "Version from package.json: $VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT

- name: Check if tag already exists
id: check
run: |
TAG="v${{ steps.pkg.outputs.version }}"
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "Tag $TAG already exists. Skipping."
echo "exists=true" >> $GITHUB_OUTPUT
else
echo "exists=false" >> $GITHUB_OUTPUT
fi

- name: Create and push tag
if: steps.check.outputs.exists == 'false'
run: |
git config user.name "github-actions"
git config user.email "github-actions@github.com"

TAG="v${{ steps.pkg.outputs.version }}"
git tag "$TAG"
git push origin "$TAG"

- name: Create GitHub release
if: steps.check.outputs.exists == 'false'
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ steps.pkg.outputs.version }}"
name: "Release v${{ steps.pkg.outputs.version }}"
body: |
πŸš€ **Automatic Release**

Version: v${{ steps.pkg.outputs.version }}
Triggered by merge into \`prod\`.

Commit: ${{ github.sha }}
11 changes: 9 additions & 2 deletions Todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,21 @@
- [ ] check mobile responsiveness of the components previous to feedback modal.
- [ ] [IMP] update the manual hook installation for respective comp. (steps)
- [ ] fix scroll bar in manual boxes and code boxes (either make them small or remove them).
- [ ] do we need bread crumbs for sub headings?
- [ ] update docs to `Fuma docs`
- [ ] thinking of sepearating landing:`aetherui.in` and docs:`ui.aetherui.in` by upgrading from nextjs to monorepo setup. This will allow us to divide the load.
- [ ] create sitemap and robots.txt.
- [ ] there is a stupid bug in `page.mdx` file, where inside tabs "manual" the step 2's margin up is not working.(fix for now custom css)
- [ ] update loading animation.
- [ ] right now the `SmoothSlider` doesnt shift content to right in extreme left and vice versa. Its a bug.
- [ ] wrap the text in `code-preview`/`code-renderer` in the `pre` tag.
- [x] fix the add to v0 issue
- [ ] the side bar in the doc which show the break point for the headings should slice the text and show the first line of the heading.
- [ ] update the eslint rule for `unused-vars` to `error` and fix all the issues.

---

### SEO

- [ ] create `sitemap.xml` and `robots.txt`.
- [ ] Add specific metadata to the landing page.
- [ ] Add specific metadata to MDX pages.
- [ ] Review and update `site.ts` and ensure all the information is accurate and complete. The `fallbackURL` should be updated to the production URL.
10 changes: 10 additions & 0 deletions event.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"pull_request": {
"head": {
"ref": "main"
},
"base": {
"ref": "prod"
}
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "aether-ui",
"version": "0.1.5",
"version": "0.1.6",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
Expand Down