Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-28857

Add support for deploying PRs on Platform.sh using eZ GRD



    • Type: Story
    • Status: Development
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
    • Story Points:


      The use of Platform.sh's github integration is not ideal for PRs due to various reasons, including but not limited to :

      • Platform.sh has a upper limit of 21 environments/PRs per project. This limit can be increased at a cost though
      • Every bundle repo must contain .platform.app.yml and a few others files which then needs to be maintained
      • The integration doesn't fit well with bundles as we then have to download meta repo in platform.sh's build hook and manipulate composer.json in order to use the PR's bundle

      As an alternative we could create our own webhook in GRD.
      Prerequsite :

      • Git hub repo has configured a webhook so that GRD is contantacted when new PRs are greated
      • GRD as preconfigured a pool of projects on Platform.sh. A pool of 10 projects means that GRD can handle 10*21=210 environments and the possibility for deploying about 200 PRs ( or 210 if we use the 10 master branches too )
      • [optional] : GRD can create and delete projects as needed

      Possible workflow:

      1. [User] creates a new PR
      2. [Github] access our webhook at GRD
      3. [GRD] Somehow knows which meta repo and branch to use for the given PR ( configured in GRD itself, or in a config file in the bundle repo itself )
      4. [GRD] downloads metarepo locally
      5. [GRD] downloads PR bundle and adds it somewhere in the local meta repo checkout
      6. [GRD] modifies composer.json so that composer will use the PR version of the bundle
      7. [GRD ] Optionally : repeats the previous two steps for any other custom bundles the PR also requires
      8. [GRD] looks up a project which hasn't reached 21 environments yet
      9. [GRD] pushes the metarepo (with it's local changes) to the selected project on Platform.sh


          Issue Links



              vidar.langseid@ez.no Vidar Langseid
              0 Vote for this issue
              2 Start watching this issue