77 lines
2.1 KiB
Markdown
77 lines
2.1 KiB
Markdown
# GitHub Actions Workflows
|
|
|
|
This project uses three separate Docker build workflows that automatically build and publish Docker images to GitHub Container Registry (ghcr.io).
|
|
|
|
## Workflows Overview
|
|
|
|
| Workflow | Trigger | Image Tag(s) |
|
|
|----------|---------|--------------|
|
|
| [docker-build-release.yml](.github/workflows/docker-build-release.yml) | Tags: `v1.2.0`, `v1.2.0-alpha1` | `1.2.0`, `1.2`, `latest` |
|
|
| [docker-build-nightly.yml](.github/workflows/docker-build-nightly.yml) | Push to `main` | `nightly` |
|
|
| [docker-build-pr.yml](.github/workflows/docker-build-pr.yml) | Pull requests | `pr-<pr-number>` |
|
|
|
|
## Detailed Description
|
|
|
|
### Release Workflow (`docker-build-release.yml`)
|
|
|
|
Publishes versioned images for new releases.
|
|
|
|
**Triggers:**
|
|
- Tags matching `v[0-9]+.[0-9]+.[0-9]+` (e.g., `v1.0.0`)
|
|
- Tags matching `v[0-9]+.[0-9]+.[0-9]+-[a-zA-Z0-9]+` (e.g., `v1.0.0-alpha1`)
|
|
|
|
**Image Tags:**
|
|
```
|
|
ghcr.io/ohf-voice/linux-voice-assistant:1.0.0
|
|
ghcr.io/ohf-voice/linux-voice-assistant:1.0
|
|
ghcr.io/ohf-voice/linux-voice-assistant:1
|
|
ghcr.io/ohf-voice/linux-voice-assistant:latest
|
|
```
|
|
|
|
### Nightly Workflow (`docker-build-nightly.yml`)
|
|
|
|
Automatically builds nightly images from the main branch.
|
|
|
|
**Triggers:**
|
|
- Push to `main` branch
|
|
|
|
**Image Tag:**
|
|
```
|
|
ghcr.io/ohf-voice/linux-voice-assistant:nightly
|
|
```
|
|
|
|
### PR Workflow (`docker-build-pr.yml`)
|
|
|
|
Builds images for pull requests using the PR number as tag.
|
|
|
|
**Triggers:**
|
|
- Pull request opened, synchronized, or reopened
|
|
|
|
**Image Tag:**
|
|
```
|
|
ghcr.io/ohf-voice/linux-voice-assistant:pr-<pr-number>
|
|
```
|
|
|
|
## Multi-Architecture Support
|
|
|
|
All workflows build for multiple architectures:
|
|
- `linux/amd64` (x86_64)
|
|
- `linux/aarch64` (ARM 64-bit, e.g., Raspberry Pi 4)
|
|
|
|
## Setup Requirements
|
|
|
|
**No additional setup needed!** The workflows use `GITHUB_TOKEN` which is automatically provided by GitHub Actions.
|
|
|
|
## Creating a Release
|
|
|
|
```bash
|
|
git tag v1.0.0
|
|
git push origin v1.0.0
|
|
```
|
|
|
|
This creates images with the following tags:
|
|
- `ghcr.io/ohf-voice/linux-voice-assistant:1.0.0`
|
|
- `ghcr.io/ohf-voice/linux-voice-assistant:1.0`
|
|
- `ghcr.io/ohf-voice/linux-voice-assistant:1`
|
|
- `ghcr.io/ohf-voice/linux-voice-assistant:latest`
|