mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-02 14:24:27 -04:00
- Convert Travis CI configuration to GitHub Actions workflows - Add multi-arch Docker builds (amd64/arm64) - Implement initial schema migration for fresh database installs - Add multi-attribute search with AND logic and sort by attribute columns - Address various PR review feedback and formatting fixes
61 lines
2.0 KiB
Markdown
61 lines
2.0 KiB
Markdown
# GitHub Actions
|
|
|
|
This document describes the CI/CD workflows for OSPOS.
|
|
|
|
## Build and Release Workflow (`.github/workflows/build-release.yml`)
|
|
|
|
### Build Process
|
|
- Setup PHP 8.2 with required extensions
|
|
- Setup Node.js 20
|
|
- Install composer dependencies
|
|
- Install npm dependencies
|
|
- Build frontend assets with Gulp
|
|
|
|
### Docker Images
|
|
- Build and push `opensourcepos` Docker image for multiple architectures (linux/amd64, linux/arm64)
|
|
- On master: tagged with version and `latest`
|
|
- On other branches: tagged with version only
|
|
- Pushed to Docker Hub
|
|
|
|
### Releases
|
|
- Create distribution archives (tar.gz, zip)
|
|
- Create/update GitHub "unstable" release on master branch only
|
|
|
|
## Required Secrets
|
|
|
|
To use this workflow, you need to add the following secrets to your repository:
|
|
|
|
1. **DOCKER_USERNAME** - Docker Hub username for pushing images
|
|
2. **DOCKER_PASSWORD** - Docker Hub password/token for pushing images
|
|
|
|
### How to add secrets
|
|
|
|
1. Go to your repository on GitHub
|
|
2. Click **Settings** → **Secrets and variables** → **Actions**
|
|
3. Click **New repository secret**
|
|
4. Add `DOCKER_USERNAME` and `DOCKER_PASSWORD`
|
|
|
|
The `GITHUB_TOKEN` is automatically provided by GitHub Actions.
|
|
|
|
## Workflow Triggers
|
|
|
|
- **Push to master** - Runs build, Docker push (with `latest` tag), and release
|
|
- **Push to other branches** - Runs build and Docker push (version tag only)
|
|
- **Push tags** - Runs build and Docker push (version tag only)
|
|
- **Pull requests** - Runs build only (PHPUnit tests run in parallel via phpunit.yml)
|
|
|
|
## Existing Workflows
|
|
|
|
This repository also has these workflows:
|
|
- `.github/workflows/main.yml` - PHP linting with PHP-CS-Fixer
|
|
- `.github/workflows/phpunit.yml` - PHPUnit tests (runs on all PHP versions 8.1-8.4)
|
|
- `.github/workflows/php-linter.yml` - PHP linting
|
|
|
|
## Testing
|
|
|
|
PHPUnit tests are run separately via `.github/workflows/phpunit.yml` on every push and pull request, testing against PHP 8.1, 8.2, 8.3, and 8.4.
|
|
|
|
To test the build workflow:
|
|
1. Add the required secrets
|
|
2. Push to master or create a PR
|
|
3. Monitor the Actions tab in GitHub |