- Implemented `docker-build.yml` for building and pushing Docker images with multi-platform support, Trivy security scanning, and conditional builds based on commit messages. - Created `docker-publish.yml` for streamlined Docker image publishing with Trivy vulnerability scanning on push events. - Added `docs.yml` to automate documentation deployment to GitHub Pages, including a custom HTML structure and markdown conversion. - Introduced `propagate-changes.yml` to automate PR creation for synchronizing changes between main, development, and feature branches. - Established `quality-checks.yml` for running backend (Go) and frontend (React) quality checks, including tests and linting. - Developed `release.yml` for generating changelogs and creating GitHub releases upon version tag pushes. - Set up `renovate.yml` for automated dependency updates on a daily schedule.
63 lines
2.0 KiB
YAML
63 lines
2.0 KiB
YAML
name: Monitor Caddy Major Release
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '17 7 * * 1' # Mondays at 07:17 UTC
|
|
workflow_dispatch: {}
|
|
|
|
permissions:
|
|
contents: read
|
|
issues: write
|
|
|
|
jobs:
|
|
check-caddy-major:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check for Caddy v3 and open issue
|
|
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
|
|
with:
|
|
script: |
|
|
const upstream = { owner: 'caddyserver', repo: 'caddy' };
|
|
const { data: releases } = await github.rest.repos.listReleases({
|
|
...upstream,
|
|
per_page: 50,
|
|
});
|
|
const latestV3 = releases.find(r => /^v3\./.test(r.tag_name));
|
|
if (!latestV3) {
|
|
core.info('No Caddy v3 release detected.');
|
|
return;
|
|
}
|
|
|
|
const issueTitle = `Track upgrade to Caddy v3 (${latestV3.tag_name})`;
|
|
|
|
const { data: existing } = await github.rest.issues.listForRepo({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
state: 'open',
|
|
per_page: 100,
|
|
});
|
|
|
|
if (existing.some(i => i.title === issueTitle)) {
|
|
core.info('Issue already exists — nothing to do.');
|
|
return;
|
|
}
|
|
|
|
const body = [
|
|
'Caddy v3 has been released upstream and detected by the scheduled monitor.',
|
|
'',
|
|
`Detected release: ${latestV3.tag_name} (${latestV3.html_url})`,
|
|
'',
|
|
'- Create a feature branch to evaluate the v3 migration.',
|
|
'- Review breaking changes and update Docker base images/workflows.',
|
|
'- Validate Trivy scans and update any policies as needed.',
|
|
'',
|
|
'Current policy: remain on latest 2.x until v3 is validated.'
|
|
].join('\n');
|
|
|
|
await github.rest.issues.create({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
title: issueTitle,
|
|
body,
|
|
});
|