use new AP resolve code from SearchController in SearchRetrieveApi #7166
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Mbin Workflow | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| - develop | |
| - dev/new_features | |
| push: | |
| branches: | |
| - main | |
| - dev/new_features | |
| tags: | |
| - 'v*' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/mbinorg/mbin-pipeline-image:latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Get NPM cache directory path | |
| id: npm-cache-dir-path | |
| run: echo "dir=$(npm get cache)" >> $GITHUB_OUTPUT | |
| - name: Add GITHUB_WORKSPACE as a safe directory | |
| run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
| - name: Get Composer Cache Directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - uses: actions/cache@v4 | |
| id: npm-cache | |
| with: | |
| path: ${{ steps.npm-cache-dir-path.outputs.dir }} | |
| key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-no-dev-${{ hashFiles('**/composer.lock') }} | |
| - run: cp .env.example .env | |
| - name: Composer install | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| composer install --no-dev --no-progress | |
| - name: Test API dump | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| php bin/console nelmio:apidoc:dump | |
| - name: NPM install | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| npm ci --include=dev | |
| env: | |
| NODE_ENV: production | |
| - name: Build frontend (production) | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| npm run build | |
| automated-tests: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/mbinorg/mbin-pipeline-image:latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Add GITHUB_WORKSPACE as a safe directory | |
| run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
| - name: Get Composer Cache Directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Get NPM cache directory path | |
| id: npm-cache-dir-path | |
| run: echo "dir=$(npm get cache)" >> $GITHUB_OUTPUT | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('*/composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - uses: actions/cache@v4 | |
| id: npm-cache | |
| with: | |
| path: ${{ steps.npm-cache-dir-path.outputs.dir }} | |
| key: ${{ runner.os }}-npm-${{ hashFiles('*/package-lock.json') }} | |
| restore-keys: ${{ runner.os }}-npm- | |
| - name: Composer install | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| composer install --no-scripts --no-progress | |
| - run: cp .env.example .env | |
| - name: NPM install | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| npm ci --include=dev | |
| env: | |
| NODE_ENV: production | |
| - name: Build frontend (production) | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| npm run build | |
| - name: Run unit tests | |
| env: | |
| COMPOSER_CACHE_DIR: ${{ steps.composer-cache.outputs.dir }} | |
| SYMFONY_DEPRECATIONS_HELPER: disabled | |
| DATABASE_HOST: postgres | |
| DATABASE_PORT: 5432 | |
| REDIS_HOST: valkey | |
| REDIS_PORT: 6379 | |
| CREATE_SNAPSHOTS: false | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| php vendor/bin/paratest tests/Unit | |
| - name: Run non thread safe integration tests | |
| env: | |
| COMPOSER_CACHE_DIR: ${{ steps.composer-cache.outputs.dir }} | |
| SYMFONY_DEPRECATIONS_HELPER: disabled | |
| DATABASE_HOST: postgres | |
| DATABASE_PORT: 5432 | |
| REDIS_HOST: valkey | |
| REDIS_PORT: 6379 | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| php vendor/bin/phpunit tests/Functional | |
| --group NonThreadSafe | |
| - name: Run thread safe integration tests | |
| env: | |
| COMPOSER_CACHE_DIR: ${{ steps.composer-cache.outputs.dir }} | |
| SYMFONY_DEPRECATIONS_HELPER: disabled | |
| DATABASE_HOST: postgres | |
| DATABASE_PORT: 5432 | |
| REDIS_HOST: valkey | |
| REDIS_PORT: 6379 | |
| run: > | |
| ./ci/skipOnExcluded.sh | |
| php vendor/bin/paratest tests/Functional | |
| --exclude-group NonThreadSafe | |
| services: | |
| postgres: | |
| # Docker Hub image | |
| image: postgres:16 | |
| # Provide the password for postgres | |
| env: | |
| POSTGRES_DB: mbin_test | |
| POSTGRES_USER: mbin | |
| POSTGRES_PASSWORD: ChangeThisPostgresPass | |
| # Set health checks to wait until postgres has started | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| valkey: | |
| # Docker Hub image | |
| image: valkey/valkey | |
| # Set health checks to wait until redis has started | |
| options: >- | |
| --health-cmd "redis-cli ping" | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| audit-check: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/mbinorg/mbin-pipeline-image:latest | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Add GITHUB_WORKSPACE as a safe directory | |
| run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
| - name: Get Composer Cache Directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Cache vendor directory | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - run: cp .env.example .env | |
| - name: Composer install | |
| run: composer install --no-scripts --no-progress | |
| - name: Run Npm audit | |
| run: npm audit --omit=dev | |
| - name: Run Composer audit | |
| run: composer audit --no-dev --abandoned=ignore | |
| fixer-dry-run: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/mbinorg/mbin-pipeline-image:latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Add GITHUB_WORKSPACE as a safe directory | |
| run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
| - name: Get Composer Cache Directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-tools-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer-tools- | |
| - name: Composer tools install | |
| run: composer -d tools install --no-scripts --no-progress | |
| - name: PHP CS Fixer dry-run with diff | |
| run: > | |
| tools/vendor/bin/php-cs-fixer fix | |
| --dry-run --diff --show-progress=none | |
| - name: PHP CS Fixer to PR Annotations | |
| run: > | |
| tools/vendor/bin/php-cs-fixer fix | |
| --dry-run --format=checkstyle --show-progress=none | cs2pr | |
| twig-lint: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/mbinorg/mbin-pipeline-image:latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Add GITHUB_WORKSPACE as a safe directory | |
| run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
| - name: Get Composer Cache Directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-tools-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer-tools- | |
| - run: cp .env.example .env | |
| - name: Composer tools install | |
| run: composer install --no-scripts --no-progress | |
| - name: Twig linter | |
| run: php bin/console lint:twig templates/ | |
| frontend-lint: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/mbinorg/mbin-pipeline-image:latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Add GITHUB_WORKSPACE as a safe directory | |
| run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
| - name: Get Composer Cache Directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Get NPM cache directory path | |
| id: npm-cache-dir-path | |
| run: echo "dir=$(npm get cache)" >> $GITHUB_OUTPUT | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('*/composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - uses: actions/cache@v4 | |
| id: npm-cache | |
| with: | |
| path: ${{ steps.npm-cache-dir-path.outputs.dir }} | |
| key: ${{ runner.os }}-npm-${{ hashFiles('*/package-lock.json') }} | |
| restore-keys: ${{ runner.os }}-npm- | |
| - name: Composer install | |
| run: composer install --no-scripts --no-progress | |
| - run: cp .env.example .env | |
| - name: NPM install | |
| run: npm ci | |
| - name: eslint | |
| run: npm run lint | |
| build-and-publish-docker-image: | |
| runs-on: ubuntu-latest | |
| # Let's only run this on branches and tagged releases only | |
| # Because the Docker build takes quite some time. | |
| if: github.event_name != 'pull_request' | |
| permissions: | |
| contents: write | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Login to ghcr | |
| if: github.event_name != 'pull_request' | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Docker meta data | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ghcr.io/mbinorg/mbin | |
| - name: Build and push Docker image | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| file: ./docker/Dockerfile | |
| push: ${{ github.event_name != 'pull_request' }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| # We will also use this job to dispatch an event to the mbin-docs repository to trigger documentation build and publish | |
| - name: Trigger mbin-docs workflow dispatch | |
| if: github.event_name != 'pull_request' | |
| uses: peter-evans/repository-dispatch@v4 | |
| with: | |
| token: ${{ secrets.MBIN_ACCESS_TOKEN }} | |
| repository: MbinOrg/mbin-docs | |
| event-type: update-docs |