chore: add release workflow#108
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds an automated release pipeline that builds and publishes multi-arch Docker images for the API and UI to GHCR on SemVer tag pushes, and creates a corresponding GitHub Release. It also introduces a production UI container image built with Vite and served via Nginx.
Changes:
- Added a tag-triggered GitHub Actions release workflow to build/push API + UI images and create GitHub releases (with prerelease handling).
- Added a multi-stage
ui/Dockerfileto build the Vite UI and serve it with Nginx. - Added an Nginx config for SPA routing and long-term caching of built assets.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
.github/workflows/release.yml |
Builds/pushes multi-arch API/UI images to GHCR on SemVer tags and creates GitHub releases. |
ui/Dockerfile |
Multi-stage UI image build (Node builder → Nginx runtime) with optional VITE_API_BASE_URL. |
ui/nginx.conf |
Nginx SPA config with /assets caching and dotfile blocking. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+177
to
+181
| body: | | ||
| Container images: | ||
|
|
||
| - **API**: `${{ steps.img.outputs.api }}:${{ github.ref_name }}` | ||
| - **UI**: `${{ steps.img.outputs.ui }}:${{ github.ref_name }}` |
Comment on lines
+12
to
+13
| COPY . . | ||
| RUN npm run build |
| location / { | ||
| try_files $uri $uri/ /index.html; | ||
| } | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a complete automated release workflow for the project, including Docker image builds for both the API and UI, and the creation of GitHub releases. It adds a new GitHub Actions workflow, Dockerfile, and Nginx configuration for the UI, enabling consistent and automated builds and deployments.
Release automation:
.github/workflows/release.ymlGitHub Actions workflow that builds and pushes multi-architecture Docker images for both the API and UI upon pushing SemVer tags, and creates GitHub releases with appropriate tagging and prerelease handling.UI build and deployment:
ui/Dockerfilethat builds the UI using Node.js, then serves it with Nginx, supporting an optionalVITE_API_BASE_URLbuild argument for API endpoint configuration.ui/nginx.confto efficiently serve the built UI, including caching for assets and security best practices for hidden files.Closes #107