文件历史

22 次代码提交

作者 SHA1 备注 提交日期
caorushizi 3f889da389 fix(ci): move secrets check off if: to dodge Unrecognized named-value: 'secrets'
The Docker Hub mirror workflow used `secrets.DOCKERHUB_USERNAME != ''`
directly inside step `if:` conditions and step-level `env:`
expressions. GitHub's expression parser now rejects that with
`Unrecognized named-value: 'secrets'` — the `secrets` context is only
allowed in a narrow set of positions (mostly `with:` inputs and step
`env:` values, not inside `if:` expressions).

Route the check through a dedicated detection step whose `env:` reads
the secrets (the one permitted way to surface them) and writes a
plain boolean to step outputs. Every downstream conditional then
guards on `steps.dockerhub.outputs.enabled == 'true'` instead.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 16:46:52 +08:00
caorushizi ab669f2e74 ci(docker): mirror image to Docker Hub alongside GHCR
Every image published to `ghcr.io/caorushizi/mediago` now also gets
pushed to `docker.io/caorushizi/mediago` under the same tags, so users
can `docker pull caorushizi/mediago:3.5.0` without setting up GHCR
auth.

- New `DOCKERHUB_IMAGE` env var pinning the Docker Hub slug.
- New `Login to Docker Hub` step guarded by
  `secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != ''`
  so forks without Docker Hub credentials can still build + push to
  GHCR without failing the login.
- New `Resolve image targets` step that composes the metadata-action
  `images:` list at runtime — only adds the Docker Hub target when
  both secrets are present. Without this, metadata-action would keep
  emitting Docker Hub tags that build-push-action would then 401 on.
- Build Summary shows both `docker pull` hints when Docker Hub is
  enabled.

Setup (one-time, in repo Settings → Secrets and variables → Actions):
- `DOCKERHUB_USERNAME`: Docker Hub account name
- `DOCKERHUB_TOKEN`:    PAT from https://hub.docker.com/settings/security
                        with Read+Write scope on caorushizi/mediago

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 16:10:33 +08:00
caorushizi d23f594b88 ci(docker): allow rebuilding an existing tag via workflow_dispatch
When a released image has to be re-cut (e.g. the broken 3.5.0 that
shipped with the stale per-downloader flags), there was no clean way
to re-publish under the same tag from the workflow — only a fresh
git tag push would trigger a build.

Extend `workflow_dispatch` with two inputs:

- `tag`        — image tag to publish under (e.g. `3.5.0` to overwrite
                 the existing one, or `3.5.0-fix.1` for a side-by-side).
                 Empty value falls back to the pre-existing
                 `dev-<run_id>` behaviour.
- `push_latest` — when rebuilding a stable release manually, optionally
                  re-stamp the `latest` tag at the same time.

`docker/metadata-action` already emits the standard OCI labels,
including `org.opencontainers.image.revision` sourced from `github.sha`.
That field alone is enough to tell two same-tag builds apart via
`docker inspect` — no Dockerfile changes needed, no manually-computed
build args. Summary step now reads version / commit from metadata-action's
own outputs (`steps.meta.outputs.version`) and `github.sha`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 14:36:30 +08:00
caorushizi 0be4e5b9e6 chore(ci): upgrade GitHub Actions to Node 24 compatible versions
Upgrade all actions to eliminate Node.js 20 deprecation warnings:
- actions/checkout v5 → v6
- actions/setup-node v4 → v6
- actions/setup-go v5 → v6
- actions/upload-artifact v4 → v6
- pnpm/action-setup v4 → v5
- docker/setup-buildx-action v3 → v4
- docker/login-action v3 → v4
- docker/metadata-action v5 → v6
- docker/build-push-action v6 → v7

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 00:09:47 +08:00
caorushizi 1dd39a6973 chore(docker): rewrite Dockerfile and CI for GHCR multi-arch builds
- Rewrite Dockerfile as 3-stage build (Node builder → Go builder → runtime)
- Use --platform=$BUILDPLATFORM for native Node/Go compilation (no QEMU)
- Cross-compile Go binary via GOOS/GOARCH for target architecture
- Add --platform flag to download-deps.ts for target-specific deps
- Map Docker TARGETARCH to Node arch naming (amd64 → linux-x64)
- Flatten deps directory structure in runtime image
- Rewrite build-server.yml to push to ghcr.io with docker/metadata-action
- Single job multi-arch build (linux/amd64 + linux/arm64) via QEMU
- Update .dockerignore to exclude electron, docs, build artifacts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 23:14:42 +08:00
caorushizi 38cb884b77 style: apply oxfmt formatting across codebase
Also fix pre-existing lint errors exposed by staging:
- Merge duplicate 'eventsource' imports in eventEmitter.ts
- Remove unused catch parameter in eventEmitter.ts
- Merge duplicate 'react' imports in app-side-bar.tsx

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 12:12:49 +08:00
caorushizi 3d4ae46e30 fix: 构建 dev 版本的 docker 2025-11-18 13:06:17 +08:00
caorushizi 4a560a0f63 fix: docker image id
Make MediaGo Docker Image / Build Docker Image (arm64, linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Make MediaGo Docker Image / Create Multi-Arch Manifest (push) Has been cancelled
Make MediaGo Docker Image / Build Docker Image (amd64, linux/amd64, ubuntu-latest) (push) Failing after 1s
2025-11-05 00:50:58 +08:00
caorushizi a52518be28 fix: docker build 2025-11-03 15:21:32 +08:00
caorushizi 18cb7709de fix: docker build 2025-11-03 11:50:09 +08:00
caorushizi 16809c4ab5 fix: server build 2025-11-01 16:30:51 +08:00
caorushizi 5dad2fb876 fix: build cache 2025-10-08 22:24:17 +08:00
caorushizi 3c78f377fc fix: build failed 2025-10-08 21:42:54 +08:00
caorushizi b869f23b20 fix: build failed 2025-10-08 21:00:03 +08:00
caorushizi 144ba39fdc fix: build failed 2025-10-08 20:47:00 +08:00
caorushizi ecc45895d0 fix: build failed 2025-10-08 17:57:56 +08:00
caorushizi 252a166978 feat: edit action script 2025-10-08 17:47:39 +08:00
caorushizi 49195f4206 feat: edit action script 2025-10-08 17:38:20 +08:00
caorushizi 0659964009 feat: edit action script 2025-10-08 17:35:29 +08:00
caorushizi 103a111191 feat: edit action script 2025-10-08 17:30:45 +08:00
caorushizi 1a45c685e7 feat: edit action script 2025-10-08 17:12:02 +08:00
caorushizi d6ae275bf3 feat: edit actions sctipts 2025-10-08 16:58:05 +08:00