This document describes the CI/CD workflows for OSPOS.
- Setup PHP 8.2 with required extensions
- Setup Node.js 20
- Install composer dependencies
- Install npm dependencies
- Build frontend assets with Gulp
- Build and push
opensourceposDocker 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
- Create distribution archives (tar.gz, zip)
- Create/update GitHub "unstable" release on master branch only
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
- 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.
- Push to master - Runs build, Docker push (with
latesttag), 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)
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
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:
- Add the required secrets
- Push to master or create a PR
- Monitor the Actions tab in GitHub