Skip to content

Commit

Permalink
Merge pull request #234 from chewiebug/release-1.36
Browse files Browse the repository at this point in the history
prepare release 1.36
  • Loading branch information
chewiebug authored Nov 30, 2019
2 parents 155210b + 7b35266 commit f442bf5
Show file tree
Hide file tree
Showing 139 changed files with 20,160 additions and 1,016 deletions.
3 changes: 3 additions & 0 deletions .bettercodehub.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
component_depth: 8
languages:
- java
19 changes: 14 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ language: java
sudo: false

jdk:
- oraclejdk8
- oraclejdk11
- oraclejdk12
- oraclejdk13
- openjdk8
- openjdk11
- openjdk12
- openjdk13

# enable cache to stop downloading all maven plugins every time
cache:
Expand All @@ -14,11 +20,10 @@ cache:

# do some preparations before the install phase
before_install:
- "git clone -b travis `git config --get remote.origin.url` target/travis"
- pip install --user codecov

# No need to run mvn install, so skip this step
install: true
install: skip

# emulate a display for the gui tests
before_script:
Expand All @@ -27,18 +32,22 @@ before_script:

# run branch dependent build using a separate script
# make sure, script is executable (http://blog.lesc.se/2011/11/how-to-change-file-premissions-in-git.html)
script: "./target/travis/gcviewer-script.sh"
script: "./cicd/gcviewer-script.sh"

after_success:
- codecov

# for configuration of maven deploy see http://knowm.org/configure-travis-ci-to-deploy-snapshots/
env:
global:
- GPG_DIR="`pwd`/cicd/gpg"
- secure: arRS4YHFdZWyl7KmduSdzOF1JGm1qOWDLp1fwtzCkGUx58G3RrhhBIynK3TuSnnUTYsmS+DyxR/R+v3QhaEjschR4Aeolq9StJGvUBssTS+oCqcLe3qLiHyy9YClCb8xSPebYNgrxEox0MuEGG73TFRUrGLHxesBo9OfLgIiGpV+kez2cBD+iFWEfNA9oeO3x3fa7Ry/YBrRfUkA5gKR41Bw/oOf+5T0HAKMpfMMmCneu7EtA3z7cWHhEEBwydwUI+szS3ozsbyUcleLwTlwabLXEB3rF3c/rU2Zy/1CLfWzJwCmy47HfclTalj/ckNxh5pK9aQwVqFM3B8ECPBUOksYm28oREgcRFbLqrtRnrKMM5tvqHXsb3r7VyJkNzFenV8e3WES8kCL7z5yuCstac395AlLRBCWTEWbHiiKTIYfx4awY5lK2CxptCf+8mzzkfltQp6HOViLw+X9c/G4MNTUWlDeMnw3JB81Rm5qaKv4gNjq9G0cPS9rzRN6SwksIEZ2i2JmVzCOoU7tWgH6ahcBDU3jJI3bwODzkzND5j0y9jKtooYEKPAH2v5b/uB/6KIlCLa/jZQcCzuTrOlKT6/Zcxl4aDUonuJ8vUDl3gMj72iqZpNosqOWIL0YVy8wlmxCaai3MK2H1647Mw5DXWzIciSN/TLwCjF3344fxHc=
- secure: L2mbuVWefCqtdy9qNcVtxW5nI2/kLY6vTXasQ19mevfxCHcyN23d8zDvCU0lRT9k9k9znXrF3JppzLwW2wkZo72XADQj+hfCSCB8axu1NQPPi3IMkFe4/c/mEXRVHYvukEjTX10BmZUfjL2H2XRiLM2eOunbRxyE6DfmIz6HuW5LS3iNi9BZQce6iHm/jG0Li+SxCgqetwZ3/Gowl1vo5vfg+xVnqTalYuSfvlJAAKfZdkw47/5T0np7ooD4W0TfFohFpq2DlVK1m27qSc0tDe9CT7YkAXid7giVfe+RC5rEoJhKf87wuKC/hitUS+OJb6hJg3IVGhsiA44w57eK6g7Gm+nDrJzId8XOYugy7VaIaVMJjoqWG8AnhbFzh2/ioWq4jI7xmjzBnKSak+DpxPvEs26WEE12m3nJVQvFpvoTTusnJuS2zUYk6ZSupdv8rw3fsIKHYepNyiCHau0WGgs1kqApA6bY3V42FFakC57x5dL5RNi54MBOzS9JBoQ6BsUewtarIdxsKUawA9TKC2M1IRI2poS0Zex9BslV08KBfzSvSI1h06kRaR6S35CwqlWnVcC+ZK4l3vOtpPYOGAo8F8OLONcUYuGMMQH+Eycvnd7yyLSbDEaEkNEBYL1uBSw6ZbRQzlFIS8v2t6BDed37WWLDD+TGnODcVJ7lhG8=
- secure: UunPp8yEYLSgQez5CUk9qdi1QQGidDQlojrScsKtz/ixhm+dv1aqu+SeqVEVFjRvCeqghB+TGufw1mxkjNwsOL+hZDmsnfex+ZR6c1swk19BarlhKVc6+lAJ/2KsOaXjdAnS5w0Xyhqp+BMJxjYfhLaaSZj1+AUiXsG4dhRzl8jylx5caJu3jG3DN0wYVM54wHpx3Vz0Rx8oDLpr6Clh8dctvxJz88cT3OH2zDiMOfSMbrfOE4ENbRDCrX/ktQl2w6L8VBu29srIUqv862Pia9F6mjsZNuWJZu/yidnX/q+ctQawT0BQJJ1U9BhWKEKhOeS5AwSiBISxtvXU4gChSqOSrSe87Zt00ndlL+LkanSbehvGEaoRmi1AKxTh/jPvkiiiYj/yH3Rh+gLvkIxDQk0tvMvT42X1GblRS4aPAxGwYb/1Sx/3VThOpGSNRyH5xC8Ccr7AmOjcZUTUm0ZV45XX2QUiAlTJvrsbW1yvWyCdsYh36fxWgLdaokhbb4APkwDQTnQZ3zMyNSMqb4v/3gTWmZmMDtXrQ6/YHdufhuDJeCt3ibFdd5BX6GFS3zQ+GKPE4lHtexR8BnFA1hLfH0jIDnAduA5mgX4w6G/dSw7Bf7HGROwB2jBSRAVgruF3kTT3M9S+0rOgceuZTTeUvfl/KLAFeS5j2mO5qmdOPQE=
- secure: hfbgSnGViHzpZBIUehTm0na8CPBGXTASeOwgxzH2fiJuTQtp/hGO3bNo5zhPW+wMWj5or5EgmcTbRVQUu6zfOmaECi1Vf1Ul42qimlR8NLCBLSoPIcBgO2re/jQFZNUe6NTAoZsVAtMaBplmeOydrjFFb1NqufbSqVX2H7IrjwIFjc/E7vG+pgjBaPh6SMWrhZHUK+aID9Ssssr9KZc2lzq1rqSC1U2M/SQf9EbVEAxkyuR77aZhnkjZlUo97gmVBscStso4bUEgU54gYL0NiSiOrRhH+8N/mb/AJMyn/KGgyNJMai0wMn4WW381iVf4huG95C/RcQOYG/OEGBuR7N1yQEVhtV3SAJPBWXp3fQcL6CnWkn4N2Tc66sjbhAD06p5fSY2YWd5uGCzG9qvw3GABcHLx5q1rpBiwgHKHF+79subsYkhhUhXHSikh8ySeniXcS1LWVpUBe6Y2hDBGh2g3zru/Rkdvv7lHZgu6BNyb1tETCCU5TvpHJVd7YxoR7cGEWHQQcycmpVL6OYwhXG52nv/r2fPBICDfyzhPDyY6uei0p3/p0t3Qgby65phmaTPbqDM5FPy43iRp4zCJ5hKgmHlhXeGS7y2AavTSMk6Da4jz7bLZkIXM90MWcIh4saXU61cJKkPz2cuzovU07WaFwCo9rapbzfbuSSfrYvQ=

- secure: "o8U8fTK6YwArlxxlpAPhPh2GV+Dl63R9K/Oq3jN4mjrrS+jvf905EqeQSEquC1uZ/ZwbD34kaFj/a50qX23axZFf09Sy9kPFNHgSNPXURZtshCNn2IimsU3eCKb6lM1MyKRa5Ue81sZVT+3Q673q9ndorHbjINb/iCg7wzx+DBNeuG5R8DXFM8ddxf19fKKkQSbzwa64lgZ8gH19TWShg2pYgLCxJxfYrt2acIJEshYyCbJxGrMVdkPztCaXqePV17saNUkbuYcVdAe3KkK/GsPe52FucbiVed705CDIJ3ODpWrx4Nsj9uFg9wuiCWWjBYIwpT+svV1lmvT9X5ViSMnazV+sNY1vpq5zDItU/lg9RsiVGVns4EEYAoJ4J4ky7KB6CC/9Nx7+oWoCNDfC80i61eEXNqg+TuKeBYKmOs/l5GnAyE7voxXUoyqBak7yu97Wp9iTRg6AoXSWiMeWnYBS5yRS/8gAaPUvfvp42ahZkiRli3R18E3s9LG1x/LowZhhGDDHum3QklJzPJlMm8BWSBJkhOgLApNWELZAtwS5yiEw4QIEQyZNEaoH9ENnpAfJIsPv1dX4nBHUlD8AhERGyUWHY95bL8GPzboBhM08pQdH+caYDRx3Fj3jICkuwYHz7RpDPAdpLMHCYoMQCjxhUy0br9GRRW0/he1Tdbw="
- secure: "bUq1LIA4FurrzaYPYg3RRKg5aaENIQTOFVCQEH+J81N4h+3O86l8pDM8RVv84M1TvsTpitUD1Agdg6qOK4IG61AVFGh6XHOMc3i/o2X0z03LCjW+J2k0ETPA1DwundgfdBitzEGedO6XQvlhVlVDg7QVEHeA3FxWPWy4+fvGEqDNEHCYPr4Q2Q/59hEXDtMIMvsHA8VOCMTuA+NRY8SkyyewXWSarNrlM+wyhIO8RcZxOEsHPKI+tIWyYInMd5mv2RZX6cs+Ia37c4ajpNXPViAe7oQHI99aFUWsUEfSydqMfVY/iDWig4bs5i/k7mln13RALyqsBFkNB+dSi36FJV2CgqnY9+YjNo4FRarXDlLwaGGPsVCgjN1xxeD+MOSqJaCM2aNiNPgB5KsGDLDTLQbcGJr4frjtGG0x1mTBD+n3GyxYcum6dWlUNGJ7IN1rShQFC+e//oHAEDNmNGkKzVVbBLJZTyirm5GJYpUq4vWDmFJsEb2CK1C2W4qVX/NSmixD2/S0x2+osWgPitkIlyKQwOjSFag6hEpqQNwuNv7HCO2JtCjfg25Ur4itZkon5oICRgznhfWuDGf9UbBc+SI3vPGlhkjH3oUqa4RCn/W5BVeug/xrfRB6AJ9k1mg8g1xCvECG2ZA9epA40PDdDqcsS6WyYcEPPvnk2wpqZY0="
- secure: "lUTaoCHgQk0xYpEtRFPJXn1Eduf5WVCyAa6/cWECGcYfrhW3kYXDHKtHwhUwi/HPGyLg0ZFi1DBaiv7QareW/D1GwlPV+UTgmc1TY02XwLz7kFPb4A9896nCVOwR5xMuTL7TFzuB8/5bFGf6GGvrGnlGKWZCIOw3d8OLaiUib+BzezMsMJjouJwUiPpg9LzdhRORK4aj+uwCD+27o3i1u2yXiv4ljY/j4rMFdNAYWup5m2QPESGXJR4aTuf2uFYUEAURkUcOhtH9Uq6XQqUbW1IJqD9UVbtLGo6qCN813UXlt17DoqkPWjvsRiC7JBLFqZpT9+wrGcfSuF4HZJJOZrWxfnD/uzL4M485eUwePKCaA1M5EfYu+wpmcz5z00O59PJISAEMrmIvJTj0T87tOdKzI/TzO1ifAUMjs2z0fJOTD4O83PvQ56oppc9fsNo2jkO74DDauoSFXNo9IRHqj/ZBoklGxSA8MWjqu5mFxwEqFVca5IfUXgqI0fiBDqU81lHqsxEKiMO0C4LYD6w3yVtm3clCyMAvYIpU1owPUnA5F3V7JkhlUh8RPOViZ3xIgCZTU4lfA+jTjvC0L4nP2/xKIQMlJlUokDjqn7S2rD6Ujb0kxcxhj9d5s1dlLrJJfaqJKeE+S0yfiG8CHEEwmOlq5yEzHdt5XuKcgR5lMgY="
- secure: "fSbp+LPptgRnMq2symJ9p+ViCevCWjuj7t38tNJrU+shlEj803Ax5G6vfCqOrOZvHS6cksLre82C1P0XyuEytN8aXJWYy0tjvKGPyXzvT+8o1xOuer9esqDtue8tZ7VlTcugPphJJtVdASPyN+8jI/mBZEp5+GPQUZIeTsAII5GzuWNJURgTbDUKZNQTPpsn+QP0cGl53waBXrA76bBFfPZxI42PEiMzaKljMuEUl9fm9KoZvVpUiDO9/N4K+8/dYGD+AMa0ny+P/gL+HS9r6nLiylF842pHzLjptin4w+8JwCyzvD7Jz+lcrwuc/XdL025V4qtPFKkaN6OvC9dcjtwkf7CVToayyLI2vR1hMLkJu/bgniMS7Wg0jHzD81zYdtbuksG98qUOO7nDp7U/BZvvHhOFVW7fXYcigwknLlW+b0z3bfKbWOfl/Hlt00UNR2nxGLb4sotQJWGfS4jdltN9FXmTMcrKSKgLYWb0hBY06Rk6Dbli2I/We3295kklVtusebpyX3peQzRT4aws6kmXlWdaHEDus5jfTgvVMm+5u7mB2UhO0kXUnFvkytgj8PROubiAMzfmFDGzE+4+aW4ihWA5OimrEyUZk4LWpQ6IV/l80yFNj2Q1EXTXBzaRpOk4xoQ4l0ZTLa6aPWDWgalnnMjZceTkdOJBf8rHOfo="
# don't configure any notifications and use defaults from travis
# see http://docs.travis-ci.com/user/notifications/ (notifications for broken builds and when status changes)
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
GCViewer helps you to analyse java garbage collection log files.

Copyright (c) 2002-2008 tagtraum industries incorporated.
Copyright (c) 2011-2017 Joerg Wuethrich and contributors
Copyright (c) 2011-2019 Joerg Wuethrich and contributors

LGPL
====
Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
GCViewer 1.35
GCViewer 1.36
=============

[![Build Status](https://travis-ci.org/chewiebug/GCViewer.svg?branch=develop)](https://travis-ci.org/chewiebug/GCViewer)
Expand All @@ -19,6 +19,11 @@ When logfile rotation (-XX:+UseGCLogFileRotation) is enabled, the logfiles can b

Supported verbose:gc formats are:

- some support for OpenJDK 9 / 10 unified logging format -Xlog:gc:<file>, the following configurations will work
- -Xlog:gc:file="path-to-file" (uses defaults)
- -Xlog:gc=info:file="path-to-file":tags,uptime,level (minimum configuration needed)
- -Xlog:gc*=trace:file="path-to-file":tags,time,uptime,level
(maximum configuration supported, additional tags ok, but ignored; additional decorations will break parsing)
- Oracle JDK 1.8 -Xloggc:<file> [-XX:+PrintGCDetails] [-XX:+PrintGCDateStamps]
- Sun / Oracle JDK 1.7 with option -Xloggc:<file> [-XX:+PrintGCDetails] [-XX:+PrintGCDateStamps]
- Sun / Oracle JDK 1.6 with option -Xloggc:<file> [-XX:+PrintGCDetails] [-XX:+PrintGCDateStamps]
Expand All @@ -29,7 +34,7 @@ Supported verbose:gc formats are:
- HP-UX JDK 1.2/1.3/1.4.x with the option -Xverbosegc
- BEA JRockit 1.4.2/1.5/1.6 with the option -verbose:memory [-Xverbose:gcpause,gcreport] [-Xverbosetimestamp]

Best results are achieved with: -Xloggc:<file> -XX:+PrintGCDetails -XX:+PrintGCDateStamps.
Best results for non unified gc logging Oracle JDKs are achieved with: -Xloggc:<file> -XX:+PrintGCDetails -XX:+PrintGCDateStamps.
A few other options are supported, but most of the information generated is ignored by GCViewer
(the javadoc introduction of
https://github.com/chewiebug/GCViewer/blob/master/src/main/java/com/tagtraum/perf/gcviewer/imp/DataReaderSun1_6_0.java
Expand Down
5 changes: 5 additions & 0 deletions cicd/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM ruby:latest

RUN gem install travis

CMD /bin/bash
42 changes: 42 additions & 0 deletions cicd/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# cicd
This directory contains a settings.xml + script file that can be used to
deploy to the SonaType OSS repository from a Travis CI build.

The full instructions are here:
http://knowm.org/configure-travis-ci-to-deploy-snapshots/

# gpg
## documentation
- https://stackoverflow.com/questions/38276762/travis-gpg-signing-failed-secret-key-not-available
- https://github.com/making/travis-ci-maven-deploy-skelton
- https://www.gnupg.org/gph/en/manual.html

expiration date of current keys: 2021-11-28

## issues with outdated openssl version in travis-ci (30.11.2019)
-> docker ruby image (ruby 2.6.5p114) uses openssl 1.1.1d; travis-ci uses openssl 1.0.2g
-> preferred command would be "openssl enc -e -v -iter 3 -aes-256-cbc -pass pass:$ENCRYPTION_PASSWORD -in ./xxx.gpg -out xxx.gpg.enc"
two issues:
- "-iter 3" is not known -> drop option
- key derivation mechanism was changed between openssl 1.1.x and 1.0.x
-- https://stackoverflow.com/questions/39637388/encryption-decryption-doesnt-work-well-between-two-different-openssl-versions/39641378#39641378
-- -> use -md sha1 to enable decryption by openssl 1.0.x

## steps to create / renew pubring.gpg.enc + secring.gpg.enc
### run docker image
- docker run --rm -it --mount type=bind,src=D:\Users\joerg2\Daten\java\git\GCViewer\cicd\gpg,dst=/usr/gpg ruby/travis /bin/bash
- cd /usr/gpg

### create private + public key
- gpg --generate-key
-- [email protected]
-- gpg zert für maven signierung
- gpg --output pubring.gpg --export [email protected]
- gpg --armor --export [email protected] > pubring.gpg.txt
-- upload to public key server (http://keyserver.ubuntu.com:11371)
- gpg --export-secret-keys > secring.gpg

### encrypt keys
- export ENCRYPTION_PASSWORD=<encryption password>
- openssl enc -e -v -aes-256-cbc -md sha1 -pass pass:$ENCRYPTION_PASSWORD -in ./pubring.gpg -out ./pubring.gpg.enc
- openssl enc -e -v -aes-256-cbc -md sha1 -pass pass:$ENCRYPTION_PASSWORD -in ./secring.gpg -out ./secring.gpg.enc
92 changes: 92 additions & 0 deletions cicd/gcviewer-script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#!/bin/bash
# -e: exit on any non-true return value
# -u: exit, if an unset variable is being used
# https://ss64.com/bash/set.html
set -eu

echo "TRAVIS_PULL_REQUEST = ${TRAVIS_PULL_REQUEST}"
echo "TRAVIS_BRANCH = ${TRAVIS_BRANCH}"
echo "TRAVIS_JDK_VERSION = ${TRAVIS_JDK_VERSION}"

#####################
# functions
#####################
function perform_snapshot_release() {
echo "----------------"
echo build and deploy to sourceforge \(SNAPSHOT only\)
echo "----------------"
mvn clean deploy javadoc:javadoc -P sourceforge-release --settings ./cicd/settings.xml
}

function init_github() {
git config --global user.email "[email protected]"
git config --global user.name "Travis CI"
git remote add origin-github https://${GH_TOKEN}@github.com/chewiebug/gcviewer.git > /dev/null 2>&1
}

function push_to_github() {
# https://gist.github.com/willprice/e07efd73fb7f13f917ea
echo "pushing $1 to github"
git status
git push --quiet --set-upstream origin-github $1
}

function merge_with_develop_branch() {
# assumption: we are not on the develop branch and should merge TRAVIS_BRANCH into develop
echo "merging ${TRAVIS_BRANCH} into develop"
# since travis did a shallow clone (git clone --depth=50 ...), we need to fetch the develop branch first
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch --depth=10
git checkout -t -b develop origin/develop
git merge ${TRAVIS_BRANCH}
}

function perform_release() {
echo "----------------"
echo perform release
echo "----------------"
# maven release needs a locally checked out branch, otherwise "git symbolic-ref HEAD" will fail
git checkout ${TRAVIS_BRANCH}
openssl version
openssl enc -d -aes-256-cbc -md sha1 -pass pass:$ENCRYPTION_PASSWORD -in $GPG_DIR/pubring.gpg.enc -out $GPG_DIR/pubring.gpg
openssl enc -d -aes-256-cbc -md sha1 -pass pass:$ENCRYPTION_PASSWORD -in $GPG_DIR/secring.gpg.enc -out $GPG_DIR/secring.gpg
mvn --batch-mode release:clean release:prepare release:perform --settings ./cicd/settings.xml
# remove decrypted keyrings
rm $GPG_DIR/*.gpg
init_github
push_to_github ${TRAVIS_BRANCH}
# push tag, which was just generated by maven-release-plugin
git push origin-github $(git describe --tags --abbrev=0)
merge_with_develop_branch
push_to_github develop
}

function perform_verify() {
echo "----------------"
echo only verify
echo "----------------"
mvn clean verify javadoc:javadoc
}

#####################
# script
#####################
# Since the same script is run several times with different jdks by the build process,
# only under certain conditions, a (snapshot) release should be built.
# Among others, a build loop must be prevented after a "perform_release" build was executed.
# All other cases (like pull requests) only perform a "verify"
if [ "${TRAVIS_PULL_REQUEST}" = "false" ] && [[ ! "${TRAVIS_COMMIT_MESSAGE}" = \[maven-release-plugin\]* ]] && [ "${TRAVIS_JDK_VERSION}" = "openjdk8" ]
then
if [ "${TRAVIS_BRANCH}" = "develop" ]
then
perform_snapshot_release
elif [[ "${TRAVIS_BRANCH}" = "master" ]]
then
perform_release
else
# will be done for all other branches pushed into this repository
perform_verify
fi
else
perform_verify
fi
Binary file added cicd/gpg/pubring.gpg.enc
Binary file not shown.
Binary file added cicd/gpg/secring.gpg.enc
Binary file not shown.
1 change: 1 addition & 0 deletions cicd/run-docker.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docker run --rm -it --mount type=bind,src=%cd%\gpg,dst=/usr/gpg ruby/travis /bin/bash
11 changes: 11 additions & 0 deletions cicd/settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
>

<servers>
<server>
<id>ossrh</id>
<username>${env.CI_DEPLOY_USERNAME}</username>
<password>${env.CI_DEPLOY_PASSWORD}</password>
</server>
</servers>
</settings>
Loading

0 comments on commit f442bf5

Please sign in to comment.