Files
opensourcepos/.github/workflows
Ollama 288b2b4c34 Convert Travis CI to GitHub Actions
- 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
2026-03-17 06:21:41 +00:00
..
2021-07-14 08:35:04 +02:00
2026-03-17 06:21:41 +00:00

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)

  1. Build Process

    • Setup PHP 8.2 with required extensions
    • Setup Node.js 20
    • Install composer dependencies
    • Install npm dependencies
    • Build frontend assets with Gulp
  2. Testing

    • Run PHPUnit tests with MariaDB container
    • Run Docker container tests
  3. Docker Images

    • Build ospos:latest Docker image
    • Build ospos_test:latest Docker image
    • Push to Docker Hub on master branch
  4. 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:

  1. DOCKER_USERNAME - Docker Hub username for pushing images
  2. DOCKER_PASSWORD - Docker Hub password/token for pushing images

How to add secrets

  1. Go to your repository on GitHub
  2. Click SettingsSecrets and variablesActions
  3. Click New repository secret
  4. Add DOCKER_USERNAME and DOCKER_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

  1. No SQL Docker image - The Travis build created a jekkos/opensourcepos:sql-$TAG image. This workflow focuses on the main application image. If needed, a separate job can be added.

  2. Branch filtering - GitHub Actions uses workflow triggers instead of Travis's branches.except

  3. 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:

  1. Add the required secrets
  2. Push to master or create a PR
  3. Monitor the Actions tab in GitHub