Add README, sync workflow, and courses scaffold
Captures the boilerplate shared by all existing <client>-eec-courses repos (README + sync.yml), parameterized with __CLIENT__/__DOMAIN__ placeholders for use via Gitea's Generate Repo.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
name: Sync courses
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Package and sync
|
||||
run: |
|
||||
tar czf /tmp/courses.tar.gz courses
|
||||
status=$(curl -s -o /tmp/sync-response.json -w '%{http_code}' \
|
||||
-X POST "http://eec-__CLIENT__:8080/admin/sync" \
|
||||
-H "Authorization: Bearer ${__CLIENT___EEC_SYNC_TOKEN}" \
|
||||
--data-binary @/tmp/courses.tar.gz)
|
||||
cat /tmp/sync-response.json
|
||||
echo
|
||||
if [ "$status" -ge 300 ]; then
|
||||
echo "sync failed with status $status"
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
__CLIENT___EEC_SYNC_TOKEN: ${{ secrets.__CLIENT___EEC_SYNC_TOKEN }}
|
||||
@@ -1,3 +1,39 @@
|
||||
# eec-courses-template
|
||||
# __CLIENT__-eec-courses
|
||||
|
||||
Template for per-client eec course repos (welcome/nurture/lead-magnet email courses synced to an eec instance)
|
||||
Course content for [eec](https://gitea.reground.org/will/eec), the self-paced
|
||||
email course engine — this instance served at eec.__DOMAIN__. Push to
|
||||
`master` and CI syncs `courses/` straight to production — there's no staging
|
||||
step, so treat a push here the same as a push to `eec` itself.
|
||||
|
||||
Full reference for course/step file format, `course.yml` fields, the
|
||||
readiness step, drip-triggered courses, and sync guardrails lives in the
|
||||
[`eec-courses`](https://gitea.reground.org/will/eec-courses) README — the
|
||||
format is identical, only the target instance differs.
|
||||
|
||||
## Layout
|
||||
|
||||
```
|
||||
courses/
|
||||
<slug>/
|
||||
course.yml
|
||||
day-0.md
|
||||
day-1.md
|
||||
...
|
||||
```
|
||||
|
||||
## Deploying
|
||||
|
||||
Push to `master` → `.gitea/workflows/sync.yml` tars up `courses/` and
|
||||
`POST`s it to this domain's `eec-__CLIENT__` container over the internal
|
||||
Docker network, authenticated with `__CLIENT___EEC_SYNC_TOKEN` (a Gitea
|
||||
Actions secret shared with the `eec-__CLIENT__` Ansible role's copy). No
|
||||
separate deploy step, no staging — a push here goes live immediately.
|
||||
|
||||
---
|
||||
|
||||
**Generating a new client repo from this template:**
|
||||
|
||||
1. Gitea → "Generate Repo" from this template repo's page, named `<client>-eec-courses`.
|
||||
2. Find/replace `__CLIENT__` → the client's slug (must match the `eec-<client>` container name) and `__DOMAIN__` → the client's domain, in this README and in `.gitea/workflows/sync.yml`.
|
||||
3. Add the `<CLIENT>_EEC_SYNC_TOKEN` Actions secret to the new repo (Gitea does not carry secrets over from a template) — value must match the `eec-<client>` Ansible role's copy.
|
||||
4. Delete this "Generating a new client repo" section from the new repo's README once done.
|
||||
|
||||
Reference in New Issue
Block a user