Skip to content

Commit

Permalink
Restore version selector (#1280)
Browse files Browse the repository at this point in the history
  • Loading branch information
basil committed Mar 19, 2023
1 parent 75e41e3 commit 785cf8c
Show file tree
Hide file tree
Showing 7 changed files with 327 additions and 2 deletions.
1 change: 1 addition & 0 deletions RELEASING.md
Expand Up @@ -5,6 +5,7 @@ These are the steps to release the Maven-based Job DSL plugin.
* Set `compatibleSinceVersion` to the new version if deprecated features have been removed
* Prepare and perform the release: `mvn release:prepare release:perform`
* Edit the [draft release notes](https://github.com/jenkinsci/job-dsl-plugin/releases) and publish them
* File a pull request to add the newly-released version to the API viewer in `job-dsl-plugin/pom.xml` and `job-dsl-plugin/src/main/hbs/root.hbs`
* Close all resolved issues in [JIRA](https://issues.jenkins-ci.org/secure/Dashboard.jspa?selectPageId=15341)
* Open a pull request to update the [Job DSL Playground](https://github.com/sheehan/job-dsl-playground)
* Open a pull request to update the [Job DSL Gradle Example](https://github.com/sheehan/job-dsl-gradle-example)
Expand Down
43 changes: 43 additions & 0 deletions job-dsl-plugin/copyData.groovy
@@ -0,0 +1,43 @@
import groovy.io.FileType
import java.io.File
import java.io.InputStream
import java.util.jar.JarFile
import java.util.TreeSet
import java.util.zip.ZipEntry
import org.apache.maven.artifact.versioning.ComparableVersion

def fileToVersion = [:]
def versionToFile = [:]
def versions = new TreeSet<ComparableVersion>()
def versionsDir = new File("${project['build']['directory']}/versions")
versionsDir.eachFile(FileType.FILES) { file ->
def matcher = file.name =~ /^job-dsl-core-(.*)\.jar$/
if (matcher.matches()) {
def version = new ComparableVersion(matcher.group(1))
fileToVersion[file] = version
versionToFile[version] = file
versions << version
}
}

def jars = versions.toList().reverse().collect({ versionToFile[it] })
jars.eachWithIndex { File jar, int index ->
JarFile jarFile = new JarFile(jar)
try {
ZipEntry entry = jarFile.getEntry('javaposse/jobdsl/dsl/dsl.json')
if (entry) {
InputStream is = jarFile.getInputStream(entry)
try {
def filename = index == 0 ? 'dsl.json' : "job-dsl-core-${fileToVersion[jar]}-apidoc.json"
def dest = new File("${project['build']['directory']}/versions/${filename}")
log.info("Writing ${dest}")
dest.delete()
dest.append(is)
} finally {
is.close()
}
}
} finally {
jarFile.close()
}
}
222 changes: 222 additions & 0 deletions job-dsl-plugin/pom.xml
Expand Up @@ -168,6 +168,216 @@
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-versions</id>
<goals>
<goal>copy</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>${project.version}</version>
</artifactItem>
<!-- After releasing a new version, add it to the list here! -->
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.81.1</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.81</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.80</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.79</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.78</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.77</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.76</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.75</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.74</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.73</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.72</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.71</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.70</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.69</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.68</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.67</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.66</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.65</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.64</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.63</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.62</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.61</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.60</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.59</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.58</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.57</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.56</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.55</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.54</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.53</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.52</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.51</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.50</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.49</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.48</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.47</version>
</artifactItem>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>job-dsl-core</artifactId>
<version>1.46</version>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/versions</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
Expand All @@ -184,6 +394,18 @@
<goal>removeTestStubs</goal>
</goals>
</execution>
<execution>
<id>copy-data</id>
<goals>
<goal>execute</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<scripts>
<script>file:///${project.basedir}/copyData.groovy</script>
</scripts>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
Expand Down
45 changes: 45 additions & 0 deletions job-dsl-plugin/src/main/hbs/root.hbs
Expand Up @@ -17,6 +17,51 @@
<li><a href="https://github.com/jenkinsci/job-dsl-plugin">GitHub</a></li>
<li><a href="http://job-dsl.herokuapp.com">Playground</a></li>
</ul>

<select class="version-select form-control">
<option value="dsl.json">Current Version</option>
<!-- After releasing a new version, add it to the list here! -->
<option value="job-dsl-core-1.81.1-apidoc.json">v1.81.1</option>
<option value="job-dsl-core-1.81-apidoc.json">v1.81</option>
<option value="job-dsl-core-1.80-apidoc.json">v1.80</option>
<option value="job-dsl-core-1.79-apidoc.json">v1.79</option>
<option value="job-dsl-core-1.78.3-apidoc.json">v1.78.3</option>
<option value="job-dsl-core-1.78.2-apidoc.json">v1.78.2</option>
<option value="job-dsl-core-1.78.1-apidoc.json">v1.78.1</option>
<option value="job-dsl-core-1.78-apidoc.json">v1.78</option>
<option value="job-dsl-core-1.77-apidoc.json">v1.77</option>
<option value="job-dsl-core-1.76-apidoc.json">v1.76</option>
<option value="job-dsl-core-1.75-apidoc.json">v1.75</option>
<option value="job-dsl-core-1.74-apidoc.json">v1.74</option>
<option value="job-dsl-core-1.73-apidoc.json">v1.73</option>
<option value="job-dsl-core-1.72-apidoc.json">v1.72</option>
<option value="job-dsl-core-1.71-apidoc.json">v1.71</option>
<option value="job-dsl-core-1.70-apidoc.json">v1.70</option>
<option value="job-dsl-core-1.69-apidoc.json">v1.69</option>
<option value="job-dsl-core-1.68-apidoc.json">v1.68</option>
<option value="job-dsl-core-1.67-apidoc.json">v1.67</option>
<option value="job-dsl-core-1.66-apidoc.json">v1.66</option>
<option value="job-dsl-core-1.65-apidoc.json">v1.65</option>
<option value="job-dsl-core-1.64-apidoc.json">v1.64</option>
<option value="job-dsl-core-1.63-apidoc.json">v1.63</option>
<option value="job-dsl-core-1.62-apidoc.json">v1.62</option>
<option value="job-dsl-core-1.61-apidoc.json">v1.61</option>
<option value="job-dsl-core-1.60-apidoc.json">v1.60</option>
<option value="job-dsl-core-1.59-apidoc.json">v1.59</option>
<option value="job-dsl-core-1.58-apidoc.json">v1.58</option>
<option value="job-dsl-core-1.57-apidoc.json">v1.57</option>
<option value="job-dsl-core-1.56-apidoc.json">v1.56</option>
<option value="job-dsl-core-1.55-apidoc.json">v1.55</option>
<option value="job-dsl-core-1.54-apidoc.json">v1.54</option>
<option value="job-dsl-core-1.53-apidoc.json">v1.53</option>
<option value="job-dsl-core-1.52-apidoc.json">v1.52</option>
<option value="job-dsl-core-1.51-apidoc.json">v1.51</option>
<option value="job-dsl-core-1.50-apidoc.json">v1.50</option>
<option value="job-dsl-core-1.49-apidoc.json">v1.49</option>
<option value="job-dsl-core-1.48-apidoc.json">v1.48</option>
<option value="job-dsl-core-1.47-apidoc.json">v1.47</option>
<option value="job-dsl-core-1.46-apidoc.json">v1.46</option>
</select>
</div>
</nav>
</div>
Expand Down

0 comments on commit 785cf8c

Please sign in to comment.