Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(dev/release#9) distmaker - Report on head for commit civicrm-drupal-8 #15149

Merged
merged 1 commit into from
Aug 28, 2019

Conversation

totten
Copy link
Member

@totten totten commented Aug 28, 2019

Overview

The general goal is to produce tags for civicrm-drupal-8 during the release process. This PR is a prerequisite (necessary but not sufficient).

The workflow for producing release tags is generally as follows:

  1. Run distmaker to prepare a release candidate (a collection of files - e.g. civicrm-5.18.0-drupal.tar.gz, civicrm-5.18.0-joomla.zip, civicrm-5.18.0.json, etc). The candidate includes a JSON file which describes the build (i.e. the list of inputs/git-commits and outputs/tarballs).
  2. Use the candidate for hydra testing (i.e. use the tarballs for normal GUI-based installation)
  3. If they work, then run releaser - which takes the release candidate and:
    • Pushes the tarballs out to CDNs
    • Pushes the git tags to Github

The present PR adds more metadata at step 1.

Before

  • The JSON report describes inputs from all the repos except civicrm-drupal-8.git:
    "git" : {
      "[email protected]" : {
         "commit" : "bfb0c1fad23ca879d02f94a8d24324748b8d99a5",
         "branch" : "1.x-master"
      },
      "civicrm-core" : {
         "branch" : "master-debower",
         "commit" : "f69a548ec11100352b411590e7dd47605e7dd947"
      },
      "civicrm-packages" : {
         "commit" : "9d616a9de8a2451bf447fe8db47a36a3ca6154dc",
         "branch" : "master"
      },
      "[email protected]" : {
         "commit" : "f115bb4ee8827a2dbf290d1294648aec449d1474",
         "branch" : "7.x-master"
      },
      "[email protected]" : {
         "commit" : "63274511c6d3f4b401a725a544e7a43576d774df",
         "branch" : "6.x-master"
      },
      "civicrm-joomla" : {
         "commit" : "4b50d3cf9ec16bdbfc3cd03ed118214898978569",
         "branch" : "master"
      },
      "civicrm-wordpress" : {
         "branch" : "master",
         "commit" : "211e2dc370075ded60b64271f32d71a989351cf2"
      }
    },
    "tar" : {
      "Drupal" : "civicrm-5.18.alpha1-drupal.tar.gz",
      "L10n" : "civicrm-5.18.alpha1-l10n.tar.gz",
      "Drupal6" : "civicrm-5.18.alpha1-drupal6.tar.gz",
      "Backdrop" : "civicrm-5.18.alpha1-backdrop-unstable.tar.gz",
      "Joomla" : "civicrm-5.18.alpha1-joomla.zip"
    }
  • To create a complete set of build artifacts, one should have this file tree:
    src/ (civicrm-core.git)
      WordPress/ (civicrm-wordpress.git)
      backdrop/ (civicrm-backdrop.git)
      drupal/ (civicrm-drupal.git)
      joomla/ (civicrm-joomla.git)
      packages/ (civicrm-packages.git)
    

After

  • The JSON report additionally reports on civicrm-drupal-8.git
    "git" : {
      "[email protected]" : {
         "commit" : "bfb0c1fad23ca879d02f94a8d24324748b8d99a5",
         "branch" : "1.x-master"
      },
      "civicrm-core" : {
         "branch" : "master-debower",
         "commit" : "f69a548ec11100352b411590e7dd47605e7dd947"
      },
      "civicrm-packages" : {
         "commit" : "9d616a9de8a2451bf447fe8db47a36a3ca6154dc",
         "branch" : "master"
      },
      "civicrm-drupal-8" : {
         "branch" : "master",
         "commit" : "1f3324176cf1254747aef6c931ecdf2dbab8881d"
      },
      "[email protected]" : {
         "commit" : "f115bb4ee8827a2dbf290d1294648aec449d1474",
         "branch" : "7.x-master"
      },
      "[email protected]" : {
         "commit" : "63274511c6d3f4b401a725a544e7a43576d774df",
         "branch" : "6.x-master"
      },
      "civicrm-joomla" : {
         "commit" : "4b50d3cf9ec16bdbfc3cd03ed118214898978569",
         "branch" : "master"
      },
      "civicrm-wordpress" : {
         "branch" : "master",
         "commit" : "211e2dc370075ded60b64271f32d71a989351cf2"
      }
    },
    "tar" : {
      "Drupal" : "civicrm-5.18.alpha1-drupal.tar.gz",
      "L10n" : "civicrm-5.18.alpha1-l10n.tar.gz",
      "Drupal6" : "civicrm-5.18.alpha1-drupal6.tar.gz",
      "Backdrop" : "civicrm-5.18.alpha1-backdrop-unstable.tar.gz",
      "Joomla" : "civicrm-5.18.alpha1-joomla.zip"
    },
    
  • To create a complete set of build artifacts, one should also have drupal-8 in this tree:
    src/ (civicrm-core.git)
      WordPress/ (civicrm-wordpress.git)
      backdrop/ (civicrm-backdrop.git)
      drupal-8/ (civicrm-drupal-8.git)
      drupal/ (civicrm-drupal.git)
      joomla/ (civicrm-joomla.git)
      packages/ (civicrm-packages.git)
    

Technical Details

  • To produce a report with the D8 commits, one needs have a copy of drupal-8/ (civicrm-drupal-8.git).
  • However, distmaker can still be used without drupal-8. (As in the past, so this is still: if you're only building the Joomla zip file, then you don't need the code for drupal-8 or WordPress).
  • There will be a separate patch to:
    • Checkout drupal-8 when CI does an automated build
    • Use the JSON to create tags
  • I've done local test runs of distmaker to ensure.
  • After this is merged, we'll need to check in on the CI autobuilds to make sure they work as expected.

Overview
--------

The general goal is to produce tags for `civicrm-drupal-8` during the release
process.

The workflow for producing release tags is generally as follows:

* Run `distmaker` to prepare a release candidate (a collection of files - e.g.
  `civicrm-5.18.0-drupal.tar.gz`, `civicrm-5.18.0-joomla.zip`, `civicrm-5.18.0.json`, etc).
  Note that the JSON file describes the build (i.e. the list of inputs/git-commits and
  outputs/tarballs).
* Use the candidate for `civihydra` testing (i.e. use the tarballs for normal GUI-based installation)
* If they work, then run `releaser` - which takes the release candidate files and:
    * Pushes the tarballs out to CDNs
    * Pushes the git tags to Github

Before
------

* The JSON report describes inputs from the following repos:
  `civicrm-{backdrop,core,drupal,joomla,packages,wordpress}.git`
* To create a complete set of build artifacts, one should have file tree:
    ```
    src/ (civicrm-core.git)
      WordPress/ (civicrm-wordpress.git)
      backdrop/ (civicrm-backdrop.git)
      drupal/ (civicrm-drupal.git)
      joomla/ (civicrm-joomla.git)
      packages/ (civicrm-packages.git)
    ```

After
-----

* The JSON report *additionally* reports on `civicrm-drupal-8.git`
* To create a complete set of build artifacts, one should also have `drupal-8` in the tree:
    ```
    src/ (civicrm-core.git)
      WordPress/ (civicrm-wordpress.git)
      backdrop/ (civicrm-backdrop.git)
      drupal-8/ (civicrm-drupal-8.git)
      drupal/ (civicrm-drupal.git)
      joomla/ (civicrm-joomla.git)
      packages/ (civicrm-packages.git)
    ```

Technical Details
-----------------

* To produce a report with the D8 commits, one needs have a copy of
  `drupal-8/` (`civicrm-drupal-8.git`).
* However, `distmaker` can still be used without `drupal-8`.  (As in the
  past, so this is still: *if you're only building the Joomla zip file, then
  you don't need the code for drupal-8 or WordPress*).
* There will be a separate patch to:
    * Checkout `drupal-8` when CI does an automated build
    * Use the JSON to create tags
@civibot
Copy link

civibot bot commented Aug 28, 2019

(Standard links)

@civibot civibot bot added the master label Aug 28, 2019
@eileenmcnaughton eileenmcnaughton merged commit b2988c5 into civicrm:master Aug 28, 2019
@totten totten deleted the master-d8json branch August 28, 2019 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants