mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-03 06:44:27 -04:00
Tests use DatabaseTestTrait with $migrate and $refresh, which means migrations run to create the schema. Loading database.sql first causes 'Duplicate column' errors since migrations try to add columns that already exist.
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
Testing
- Run PHPUnit tests with MariaDB started via Docker
Docker Images
- Build and push
opensourceposDocker image for multiple architectures (linux/amd64, linux/arm64) - Image tagged with version and
latest, pushed to Docker Hub on master branch
Releases
- Create distribution archives (tar.gz, zip)
- Create/update GitHub "unstable" release on master
Required Secrets
To use this workflow, you need to add the following secrets to your repository:
- DOCKER_USERNAME - Docker Hub username for pushing images
- DOCKER_PASSWORD - Docker Hub password/token for pushing images
How to add secrets
- Go to your repository on GitHub
- Click Settings → Secrets and variables → Actions
- Click New repository secret
- Add
DOCKER_USERNAMEandDOCKER_PASSWORD
The GITHUB_TOKEN is automatically provided by GitHub Actions.
Workflow Triggers
- Push to master - Runs full build, test, Docker push, and release
- Push tags - Runs build and test
- Pull requests - Runs build and test only
Existing Workflows
This repository also has these workflows:
.github/workflows/main.yml- PHP linting with PHP-CS-Fixer.github/workflows/phpunit.yml- PHPUnit tests.github/workflows/php-linter.yml- PHP linting
Testing
To test the workflow:
- Add the required secrets
- Push to master or create a PR
- Monitor the Actions tab in GitHub