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

Restore version selector #1280

Merged
merged 1 commit into from
Mar 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
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:/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:/sheehan/job-dsl-playground)
* Open a pull request to update the [Job DSL Gradle Example](https:/sheehan/job-dsl-gradle-example)
Expand Down
43 changes: 43 additions & 0 deletions job-dsl-plugin/copyData.groovy
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,51 @@
<li><a href="https:/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
Loading