Skip to content

Release Details

Elliotte Rusty Harold edited this page Aug 14, 2017 · 4 revisions

Steps Covered by release/release_after_kokoro.sh

  1. Assuming the build completes successfully, follow the link to the GCS bucket where kokoro stored the signed artifacts. The URL will look something like https://console.cloud.google.com/storage/browser/signedjars/staging/prod/google-cloud-eclipse/ubuntu/release/63/20161117-071805 though the numbers will change.

  2. Use gsutil to copy that bucket to a directory named signed on your local workstation (be sure to replace the URI in the example below):

    mkdir signed
    cd signed
    gsutil -m cp -R gs://signedjars/staging/prod/google-cloud-eclipse/ubuntu/release/63/20161117-071805/gfile/signed/* .
    
  3. Verify the OAuth client ID, OAuth client secret, and Analytics tracking ID are burned into the jar you downloaded:

    javap -private -classpath plugins/com.google.cloud.tools.eclipse.login_0.1.0.*.jar -constants com.google.cloud.tools.eclipse.login.Constants
    javap -classpath plugins/com.google.cloud.tools.eclipse.usagetracker_0.1.0.*.jar -constants com.google.cloud.tools.eclipse.usagetracker.Constants
    
  4. Run Eclipse p2 Features and Bundles Publisher from the command line to generate a new artifacts.jar and a new content.jar. E.g.

    "/Applications/Eclipse Mars.app/Contents/MacOS/eclipse" -nosplash -consolelog \
    -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \
    -metadataRepositoryName 'Google Cloud Tools for Eclipse' \
    -metadataRepository file:/Users/elharo/finished/repository \
    -artifactRepositoryName 'Google Cloud Tools for Eclipse' \
    -artifactRepository file:/Users/elharo/finished/repository \
    -source /Users/elharo/signed \
    -publishArtifacts \
    -compress
    

    Note: /Users/elharo/finished/repository is not gcp-repo/target/repository or eclipse/ide-target-platform/target/repository you built. The Publisher will create a new repository in this directory.

    Note: you must use full paths for -metadataRepository, -artifactRepository, and -source. -metadataRepository and -artifactRepository take a file URL, while -source uses only a path.

  5. Copy metadata.product and metadata.p2.inf into your home directory, but make sure metadata.p2.inf is renamed to p2.inf:

    gsutil cp gs://gcloud-for-eclipse-testing/metadata.product ..
    gsutil cp gs://gcloud-for-eclipse-testing/metadata.p2.inf ../p2.inf
    
  6. Run the Eclipse p2 Product Publisher to add our custom p2 metadata to the repository.

    "/Applications/Eclipse Mars.app/Contents/MacOS/eclipse" \
    -nosplash -console -consolelog \
    -application org.eclipse.equinox.p2.publisher.ProductPublisher \
    -metadataRepository file:/Users/elharo/finished/repository \
    -productFile file:/Users/elharo/metadata.product \
    -flavor tooling \
    -append \
    -compress
    
  7. Upload your newly-created artifacts.jar and content.jar, with the features and plugins directories from your local /Users/elharo/finished/repository directory (or whatever argument you gave for -artifactRepository) into a versioned directory (e.g. 1.0-beta-6) in the gs://cloud-tools-for-eclipse bucket.

    gsutil cp artifacts.jar content.jar gs://cloud-tools-for-eclipse/*version*/
    gsutil -m cp -R features plugins gs://cloud-tools-for-eclipse/*version*/
    
  8. Upload index.html from the signed directory into the same gs://cloud-tools-for-eclipse bucket.

    gsutil cp index.html gs://cloud-tools-for-eclipse/*version*/
    
  9. Give the world read permissions to these files:

    gsutil -m acl ch -r -u AllUsers:R gs://cloud-tools-for-eclipse/*version*