Skip to content

Commit b139006

Browse files
committed
add list of releases
1 parent 707304e commit b139006

File tree

4 files changed

+85
-6
lines changed

4 files changed

+85
-6
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ cache:
1414
directories:
1515
- $HOME/.gradle
1616

17-
before_install:
17+
install:
1818
- chmod a+x ./travis-build.sh
1919
- chmod a+x ./gradlew
2020

README.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ You can also use a web-based terminal, which allows you to access your applicati
5353

5454
<a href="https://github.com/beryx/text-io/raw/master/doc/img/web-terminal-animated.gif"><img src="https://github.com/beryx/text-io/raw/master/doc/img/web-terminal-thumb.gif"></a>
5555

56-
Before starting to use the library read the **[documentation](http://text-io.beryx.org)** and the **[javadoc](http://text-io.beryx.org/releases/latest/javadoc)**.
57-
Also, take a look at the list of **[demos, examples and projects](https://github.com/beryx/text-io/wiki/Demos,-Examples-and-Projects-using-Text-IO)** using Text-IO.
56+
**Useful links**
57+
- [Documentation](http://text-io.beryx.org)
58+
- [javadoc](http://text-io.beryx.org/releases/latest/javadoc)
59+
- [Demos, examples and projects using Text-IO](https://github.com/beryx/text-io/wiki/Demos,-Examples-and-Projects-using-Text-IO)
60+
- [List of all releases](https://github.com/beryx/text-io/blob/gh-pages/releases.md)
5861

5962
Text-IO is available in [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.beryx%22%20AND%20a%3A%22text-io%22) and [JCenter](https://bintray.com/beryx/maven/text-io).

build.gradle

+73-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1-
1+
import groovy.text.SimpleTemplateEngine
22
import org.apache.tools.ant.filters.ReplaceTokens
33
import org.gradle.plugins.signing.Sign
4+
import org.kohsuke.github.*
5+
6+
buildscript {
7+
repositories {
8+
jcenter()
9+
maven {
10+
url "https://plugins.gradle.org/m2/"
11+
}
12+
}
13+
dependencies {
14+
classpath 'org.kohsuke:github-api:1.90'
15+
}
16+
}
417

518
plugins {
619
id 'java'
@@ -235,13 +248,21 @@ gitPublish {
235248
def pgType = project.hasProperty('ghPageType') ? ghPageType : 'latest'
236249
if(pgType == 'init') {
237250
from file("ghpages")
251+
} else if(pgType == 'list') {
252+
from file("build/release-list")
238253
} else {
239254
from file("${asciidoctor.outputDir.path}/html5")
240255
from file("build/docs")
241256
}
242257
def docDir = Boolean.valueOf(textIoReleaseBuild) ? 'releases' : 'snapshots'
243258
if(pgType == 'init') {
244259
into "."
260+
} else if(pgType == 'list') {
261+
into "."
262+
preserve {
263+
include '**'
264+
exclude "releases.md"
265+
}
245266
} else if(pgType == 'version') {
246267
gitPublishPush.enabled = (docDir != 'snapshots')
247268
into "$docDir/$textIoVersion"
@@ -338,6 +359,57 @@ def configureJavadoc(task) {
338359
}
339360
}
340361

362+
task "update-release-list" {
363+
doLast {
364+
def docBaseUrl = 'https://beryx.github.io/text-io'
365+
updateReleaseList(docBaseUrl)
366+
}
367+
}
368+
369+
def updateReleaseList(String docBaseUrl) {
370+
List<String> releases = getReleases()
371+
def markdown = getReleasesMarkdown(releases, docBaseUrl)
372+
def releaseListDir = new File('build/release-list')
373+
releaseListDir.mkdirs()
374+
new File(releaseListDir, 'releases.md').write(markdown)
375+
}
376+
377+
def getReleases() {
378+
GitHub gitHubApi = GitHub.connectUsingPassword(System.getenv('GH_PAGES_ACCESS_TOKEN') ?: '', '')
379+
def releases = gitHubApi.getOrganization("beryx")
380+
.getRepository("text-io")
381+
.getDirectoryContent("releases", "gh-pages")*.name
382+
releases.removeAll { !it || it == 'latest' }
383+
releases.reverse()
384+
}
385+
386+
def getReleasesMarkdown(List<String> releases, String docBaseUrl) {
387+
def releasesTemplate = '''
388+
## List of all releases ##
389+
390+
**Latest snapshot**
391+
- [documentation]($docBaseUrl/snapshots/latest)
392+
- [javadoc]($docBaseUrl/snapshots/latest/javadoc)
393+
394+
<% releases.each { %>**Release $it**
395+
- [documentation]($docBaseUrl/releases/$it)
396+
- [javadoc]($docBaseUrl/releases/$it/javadoc)
397+
398+
<% } %>
399+
'''.stripIndent()
400+
401+
def engine = new SimpleTemplateEngine()
402+
def template = engine.createTemplate(releasesTemplate)
403+
def binding = [
404+
docBaseUrl: docBaseUrl,
405+
releases : releases
406+
]
407+
408+
template.make(binding).toString()
409+
}
410+
411+
412+
341413
def readFromConsole(prompt) {
342414
readFromConsole('', prompt)
343415
}

travis-build.sh

+6-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ if [ "${TRAVIS_PULL_REQUEST}" == "false" -a "${TRAVIS_BRANCH}" == "master" ]; th
1414
echo Finished gitPublishPush with ghPageType=version
1515

1616
echo Start gitPublishPush with ghPageType=version
17-
./gradlew --no-daemon -i -s gitPublishPush --rerun-tasks -PghPageType=version
18-
echo Finished gitPublishPush with ghPageType=version
17+
./gradlew --no-daemon -i -s gitPublishPush --rerun-tasks -PghPageType=version
18+
echo Finished gitPublishPush with ghPageType=version
19+
20+
echo Start updating releases.md
21+
./gradlew --no-daemon -i -s update-release-list gitPublishPush --rerun-tasks -PghPageType=list
22+
echo Finished updating releases.md
1923
fi
2024

0 commit comments

Comments
 (0)