mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-10-02 07:35:03 -04:00
* fix(release): keep package-lock.json version in sync on bump The release bump step updated app/Config/App.php and package.json but left package-lock.json on the old version, so the lockfile drifted out of sync with package.json on every release. Bump the @opensourcepos/ opensourcepos package version in package-lock.json (top-level and packages."") using the same scoped approach, and stage it in the bump commit. Fixes #4717 * fix(release): sync package-lock.json to 3.4.3 on master Bump the @opensourcepos/opensourcepos version in package-lock.json (top-level + packages."") from 3.4.2 to 3.4.3 to match package.json, which was already bumped during the 3.4.3 dev bump. This repairs the current drift introduced by the bump commit so the upcoming 3.4.3 release ships with package.json and package-lock.json in sync. Part of #4717
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
opensourceposDocker image for multiple architectures (linux/amd64, linux/arm64) - On
master: taggedmasterand<sha> - On other branches: tagged
<branch>-<sha> - On a semver tag (e.g.
3.4.2): tagged<version>andlatest - The version number is never stamped onto
master/branch builds — it only appears on tag releases - 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:
- 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 build, Docker push (
master+<sha>tags), and creates/updates theunstablerelease - Push to other branches - Runs build and Docker push (
<branch>-<sha>tag) - Push a semver tag (e.g.
3.4.2) - Runs build and Docker push (<version>+latesttags) - Pull requests - Runs build only (PHPUnit tests run in parallel via phpunit.yml); no Docker push
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:
- Add the required secrets
- Push to master or create a PR
- Monitor the Actions tab in GitHub