@@ -0,0 +1,18 @@
|
||||
---
|
||||
name: Confirmed bug
|
||||
about: Report an issue that you have definititely confirmed to be a bug
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Version:**
|
||||
- EagleCast: [eg: v1.0.0]
|
||||
- OS: [e.g. Fedora]
|
||||
|
||||
**Description of the bug and steps to reproduce:**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Screenshots:**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: Feature or change request
|
||||
about: Suggest new features or changes to existing features
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: General question
|
||||
about: You have a question about something or want to start a general discussion
|
||||
title: ''
|
||||
labels: 'question'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Note: Please refrain from posting questions about Docker and docker-compose related matters. Please search and refer to the numerous closed issues on these topics. Docker related questions are outside of the purview of this forum and will be closed. Thank you for your understanding.
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
name: Possible bug. Needs investigation.
|
||||
about: Report an issue that could be a bug but is not confirmed yet and needs investigation.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Version:**
|
||||
- EagleCast: [eg: v1.0.0]
|
||||
- OS: [e.g. Fedora]
|
||||
|
||||
**Description of the bug and steps to reproduce:**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Screenshots:**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
@@ -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
|
||||
@@ -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'
|
||||
@@ -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
|
||||
@@ -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."
|
||||
@@ -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
|
||||
@@ -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 }}
|
||||
Reference in New Issue
Block a user