diff --git a/.github/workflows/codeception.yaml b/.github/workflows/codeception.yaml index 6ccd7d39b..450b4182c 100644 --- a/.github/workflows/codeception.yaml +++ b/.github/workflows/codeception.yaml @@ -1,6 +1,8 @@ name: "Codeception Tests centralised" on: + schedule: + - cron: "0 3 * * 1,3,5" workflow_dispatch: push: branches: @@ -11,8 +13,8 @@ on: types: [opened, synchronize, reopened] env: - PIMCORE_PROJECT_ROOT: ${{ github.workspace }} - PRIVATE_REPO: ${{ github.event.repository.private }} + PIMCORE_PROJECT_ROOT: ${{ github.workspace }} + PRIVATE_REPO: ${{ github.event.repository.private }} jobs: setup-matrix: @@ -22,55 +24,57 @@ jobs: matrix: ${{ steps.set-matrix.outputs.matrix }} private_repo: ${{ env.PRIVATE_REPO }} steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.base.ref || github.ref }} - - name: Checkout reusable workflow repo - uses: actions/checkout@v4 - with: - repository: pimcore/workflows-collection-public - ref: main - path: reusable-workflows + - name: Checkout reusable workflow repo + uses: actions/checkout@v4 + with: + repository: pimcore/workflows-collection-public + ref: main + path: reusable-workflows - - name: Parse PHP versions from composer.json - id: parse-php-versions - run: | - if [ -f composer.json ]; then - php_versions=$(jq -r '.require.php' composer.json | grep -oP '\d+\.\d+' | tr '\n' ',' | sed 's/,$//') - if [ -z "$php_versions" ]; then - echo "No PHP versions found in composer.json" - echo "Setting default PHP value" - echo "php_versions=default" >> $GITHUB_OUTPUT - else - echo "php_versions=$php_versions" >> $GITHUB_OUTPUT - echo "#### php versions #### : $php_versions" - fi - else - echo "composer.json not found" - exit 1 - fi + - name: Parse PHP versions from composer.json + id: parse-php-versions + run: | + if [ -f composer.json ]; then + php_versions=$(jq -r ".require.php" composer.json | grep -oP "\d+\.\d+" | tr "\n" "," | sed "s/,$//") + if [ -z "$php_versions" ]; then + echo "No PHP versions found in composer.json" + echo "Setting default PHP value" + echo "php_versions=default" >> $GITHUB_OUTPUT + else + echo "php_versions=$php_versions" >> $GITHUB_OUTPUT + echo "#### php versions #### : $php_versions" + fi + else + echo "composer.json not found" + exit 1 + fi - - name: Set up matrix - id: set-matrix - run: | - php_versions="${{ steps.parse-php-versions.outputs.php_versions }}" + - name: Set up matrix + id: set-matrix + run: | + php_versions="${{ steps.parse-php-versions.outputs.php_versions }}" - MATRIX_JSON=$(cat reusable-workflows/codeception-tests-configuration/matrix-config.json) + MATRIX_JSON=$(cat reusable-workflows/codeception-tests-configuration/matrix-config.json) - IFS=',' read -ra VERSIONS_ARRAY <<< "$php_versions" + IFS="," read -ra VERSIONS_ARRAY <<< "$php_versions" - FILTERED_MATRIX_JSON=$(echo $MATRIX_JSON | jq --arg php_versions "$php_versions" ' - { - matrix: [ - .configs[] | - select(.php_version == $php_versions) | - .matrix[] - ] - }') + FILTERED_MATRIX_JSON=$(echo "$MATRIX_JSON" | jq --arg php_versions "$php_versions" " + { + matrix: [ + .configs[] | + select(.php_version == \$php_versions) | + .matrix[] + ] + }") - ENCODED_MATRIX_JSON=$(echo $FILTERED_MATRIX_JSON | jq -c .) + ENCODED_MATRIX_JSON=$(echo "$FILTERED_MATRIX_JSON" | jq -c .) - echo "matrix=${ENCODED_MATRIX_JSON}" >> $GITHUB_OUTPUT + echo "matrix=${ENCODED_MATRIX_JSON}" >> $GITHUB_OUTPUT codeception-tests: needs: setup-matrix @@ -86,4 +90,10 @@ jobs: SERVER_VERSION: ${{ matrix.matrix.server_version }} DEPENDENCIES: ${{ matrix.matrix.dependencies }} EXPERIMENTAL: ${{ matrix.matrix.experimental }} - PIMCORE_VERSION: ${{ matrix.matrix.pimcore_version }} \ No newline at end of file + PIMCORE_VERSION: ${{ matrix.matrix.pimcore_version }} + secrets: + SSH_PRIVATE_KEY_PIMCORE_DEPLOYMENTS_USER: ${{ secrets.SSH_PRIVATE_KEY_PIMCORE_DEPLOYMENTS_USER }} + COMPOSER_PIMCORE_REPO_PACKAGIST_TOKEN: ${{ secrets.COMPOSER_PIMCORE_REPO_PACKAGIST_TOKEN }} + PIMCORE_INSTANCE_IDENTIFIER: ${{ secrets.PIMCORE_CI_INSTANCE_IDENTIFIER }} + PIMCORE_ENCRYPTION_SECRET: ${{ secrets.PIMCORE_CI_ENCRYPTION_SECRET }} + PIMCORE_PRODUCT_KEY: ${{ secrets.PIMCORE_CI_PRODUCT_KEY }}