EagleCast
publish-github-pages / deploy (push) Waiting to run

This commit is contained in:
h202-wq
2026-07-09 10:03:32 -04:00
commit 66d9a033c9
446 changed files with 162542 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
name: Build Sanity Check
on:
pull_request:
types:
- opened
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.26.1"
- name: Prepare Dependencies and Build
run: make dist
+44
View File
@@ -0,0 +1,44 @@
name: publish-github-pages
on:
push:
branches:
- master
paths:
- 'docs/**'
workflow_dispatch:
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.x
- run: pip install mkdocs-material
# Build the mkdocs documentation in the docs/publish/docs dir. This will be at (/docs)
# The -d (output) path is relative to the -f (source) path
- name: Build docs site
run: mkdocs build -f docs/docs/mkdocs.yml -d ../publish/docs
- name: Generate Swagger UI
uses: Legion2/swagger-ui-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
spec-file: ./docs/swagger/collections.yaml
output: ./docs/publish/docs/swagger
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./docs/publish
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
+31
View File
@@ -0,0 +1,31 @@
name: Hodor AI Code Review
on:
pull_request_target:
types: [labeled, synchronize]
paths-ignore:
- 'i18n/**'
- '*.md'
- 'LICENSE'
- '.gitignore'
permissions:
contents: read
pull-requests: write
jobs:
review:
if: >-
(github.event.action == 'labeled' && github.event.label.name == 'hodor-review') ||
(github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'hodor-review'))
runs-on: ubuntu-latest
steps:
- name: Run Hodor review
run: |
docker run --rm \
-e GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} \
-e LLM_API_KEY=${{ secrets.LLM_API_KEY }} \
ghcr.io/mr-karan/hodor:0.3.4 \
"https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}" \
--model "${{ vars.HODOR_MODEL || 'gpt-5.2' }}" \
--post
+20
View File
@@ -0,0 +1,20 @@
name: "close-stale-issues-and-prs"
on:
schedule:
- cron: "30 1 * * *"
workflow_dispatch:
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
days-before-stale: 150
stale-issue-label: "stale"
stale-pr-label: "stale"
debug-only: false
exempt-all-assignees: true
operations-per-run: 1000
stale-issue-message: "This issue has been marked 'stale' after 5 months of inactivity. If there is no further activity, it will be closed in 7 days."
stale-pr-message: "This PR has been marked 'stale' after 5 months of inactivity. If there is no further activity, it will be closed in 7 days."
+146
View File
@@ -0,0 +1,146 @@
name: nightly
on:
schedule:
- cron: "0 2 * * *"
workflow_dispatch:
permissions:
contents: write
packages: write
jobs:
check:
runs-on: ubuntu-latest
outputs:
skip: ${{ steps.check_changes.outputs.skip }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Check for changes since last nightly release
id: check_changes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
LAST_NIGHTLY_SHA=$(gh release view nightly --json targetCommitish -q '.targetCommitish' 2>/dev/null || echo "")
CURRENT_SHA=$(git rev-parse HEAD)
echo "Last nightly SHA: $LAST_NIGHTLY_SHA"
echo "Current SHA: $CURRENT_SHA"
if [ -n "$LAST_NIGHTLY_SHA" ] && [ "$LAST_NIGHTLY_SHA" = "$CURRENT_SHA" ]; then
echo "No changes since last nightly build, skipping ..."
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "Changes detected, proceeding with build ..."
echo "skip=false" >> $GITHUB_OUTPUT
fi
nightly:
needs: check
if: needs.check.outputs.skip != 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.26.1"
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Delete existing nightly release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release delete nightly --yes --cleanup-tag 2>/dev/null || true
- name: Set nightly date
id: tag
run: |
NIGHTLY_DATE=$(date -u +%Y-%m-%d)
echo "date=$NIGHTLY_DATE" >> $GITHUB_OUTPUT
- name: Prepare dependencies
run: make dist
env:
EAGLECAST_VERSION: nightly-${{ steps.tag.outputs.date }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --snapshot --parallelism 1 --clean --config .goreleaser-nightly.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
EAGLECAST_VERSION: nightly-${{ steps.tag.outputs.date }}
- name: Push Docker images
run: |
# Push all architecture-specific images
docker push eaglecast:nightly-amd64
docker push eaglecast:nightly-arm64v8
docker push eaglecast:nightly-armv6
docker push eaglecast:nightly-armv7
docker push ghcr.io/h202-wq/eaglecast:nightly-amd64
docker push ghcr.io/h202-wq/eaglecast:nightly-arm64v8
docker push ghcr.io/h202-wq/eaglecast:nightly-armv6
docker push ghcr.io/h202-wq/eaglecast:nightly-armv7
- name: Create and push Docker manifests
run: |
# Docker Hub manifest
docker buildx imagetools create -t eaglecast:nightly \
eaglecast:nightly-amd64 \
eaglecast:nightly-arm64v8 \
eaglecast:nightly-armv6 \
eaglecast:nightly-armv7
# GHCR manifest
docker buildx imagetools create -t ghcr.io/h202-wq/eaglecast:nightly \
ghcr.io/h202-wq/eaglecast:nightly-amd64 \
ghcr.io/h202-wq/eaglecast:nightly-arm64v8 \
ghcr.io/h202-wq/eaglecast:nightly-armv6 \
ghcr.io/h202-wq/eaglecast:nightly-armv7
- name: Verify Docker manifests
run: |
docker buildx imagetools inspect eaglecast:nightly
docker buildx imagetools inspect ghcr.io/h202-wq/eaglecast:nightly
- name: Create GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create nightly \
--title "Nightly release" \
--notes "
> **Warning**: This is an automated nightly build from the master branch.
> It may contain bugs and breaking changes. Use at your own risk.
> Available on Docker Hub and GitHub Container Registry as `eaglecast:nightly`.
> For stable releases, please use a versioned release.
Built from commit: $(git rev-parse --short HEAD)" \
--prerelease \
--target $(git rev-parse HEAD) \
dist/*.tar.gz
+54
View File
@@ -0,0 +1,54 @@
name: goreleaser
on:
push:
tags:
- "v*" # Will trigger only if tag is pushed matching pattern `v*` (Eg: `v0.1.0`)
permissions: write-all
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.26.1"
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Docker Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare Dependencies
run: |
make dist
- name: Check Docker Version
run: |
docker version
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --parallelism 1 --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}