Skip to content
Snippets Groups Projects
Select Git revision
  • ca2415a05a1918fb177b5dc0c4ee5c1d1555d971
  • master default protected
  • feat/npm-publish
  • feat/demo-deploy
  • change-demo-deploy
  • remove-smoke
  • feat/acceptance-tests
  • feature/deploy-composer.json
  • feature/mysql-bin-logs
  • skip-codecept-for-libs
  • include-composer-json
  • exclude-wp-assets
  • update_codecept_image
  • fix/silenced-copy
  • remove-free-translations
  • codeception-with-optional-step
  • improve-parallelization
  • linter-exit
  • change-images
  • fix/linter
  • globally-raise-mem-limit
  • no-symlink2
22 results

version-cohesion.yml

Blame
  • version-cohesion.yml 2.12 KiB
    .template: &job-check-version-cohesion
      image: gitlab.wpdesk.dev:5050/wpdesk/docker-tests/php-box:8.3.2
      stage: tests
      variables:
        PLUGIN_VERSION: ${CI_COMMIT_REF_NAME}
      tags:
        - deploy
      before_script:
        - echo "Plugin version from tag ${PLUGIN_VERSION}"
      script:
        # official semver regex: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
        - SEMVER_REGEX="(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?"
        - SEMVER_PART="(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?"
        - echo "Checking plugin version in plugin header"
        - if [[ "$(grep -h 'Version:' *.php | grep -oP $SEMVER_REGEX)" != "$PLUGIN_VERSION" ]]; then exit 1; fi
        - |
          # Check for $plugin_version variable in file only for plugin-flow plugins. wpdesk/wp-init doesn't use such identifier.
          if ! composer show -q wpdesk/wp-init; then
            echo "Checking plugin version in variable";
            if [[ "$(grep -h '$plugin_version' *.php | grep -oP $SEMVER_REGEX)" != "$PLUGIN_VERSION" ]]; then
              exit 1;
            fi
          fi
        - |
          if [[ -f readme.txt ]]; then
            # skip check if it's preproduction version
            if [[ "$(echo $PLUGIN_VERSION | grep -oP $SEMVER_PART)" ]]; then
              exit 0
            else
              echo "Checking plugin version in readme.txt"
              if [[ "$(grep -h 'Stable tag:' readme.txt | grep -oP $SEMVER_REGEX)" != "$PLUGIN_VERSION" ]]; then exit 1; fi
            fi
          fi
    
    check version cohesion tag:
      <<: *job-check-version-cohesion
      except:
        variables:
          - $IS_LIBRARY
          - $IS_NPM_LIBRARY
      only:
        refs:
          - tags
    
    check version cohesion:
      <<: *job-check-version-cohesion
      allow_failure: true
      except:
        variables:
          - $IS_LIBRARY
          - $IS_NPM_LIBRARY
        refs:
          - tags
      before_script:
        - PLUGIN_VERSION=`grep -h 'Version' *.php | grep -oE '([0-9]+.?)+'`
        - echo "Plugin version from plugin file ${PLUGIN_VERSION}"