mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-03 14:51:31 -04:00
- Create build-release.yml workflow to replace .travis.yml - Build PHP 8.2 with required extensions - Run PHPUnit tests with MariaDB container - Build and push Docker images to Docker Hub - Create/update unstable release on master push - Add documentation for required secrets Differences from Travis: - Uses concurrency groups to cancel in-progress runs - Separates build and release into distinct jobs - Uses GitHub's native release action - No separate SQL Docker image (can be added if needed) Required secrets: DOCKER_USERNAME, DOCKER_PASSWORD
GitHub Actions Migration
This document describes the migration from Travis CI to GitHub Actions.
What was migrated
The following Travis CI functionality has been converted to GitHub Actions:
Build and Test 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 container
- Run Docker container tests
-
Docker Images
- Build
ospos:latestDocker image - Build
ospos_test:latestDocker image - Push to Docker Hub on master branch
- Build
-
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
Differences from Travis CI
-
No SQL Docker image - The Travis build created a
jekkos/opensourcepos:sql-$TAGimage. This workflow focuses on the main application image. If needed, a separate job can be added. -
Branch filtering - GitHub Actions uses workflow triggers instead of Travis's
branches.except -
Concurrency - Added concurrency group to cancel in-progress runs on the same branch
Existing Workflows
This repository also has these workflows:
.github/workflows/main.yml- PHP linting with PHP-CS-Fixer.github/workflows/phpunit.yml- PHPUnit tests (already existed).github/workflows/php-linter.yml- PHP linting.github/workflows/codeql-analysis.yml- Security analysis
Testing
To test the workflow:
- Add the required secrets
- Push to master or create a PR
- Monitor the Actions tab in GitHub