mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-03 06:44:27 -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
2.3 KiB
2.3 KiB
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