Skip to content

A simple Jenkins plugin to start/stop EC2 workers as Jenkins nodes go on-line/off-line

License

Notifications You must be signed in to change notification settings

mmorton/ec2-start-stop

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📖

A Jenkins plugin used on https://scala-ci.typesafe.com to start and stop EC2 instances on demand.

Differs from the ec2-plugin, which creates and deletes instances based on AMIs.

🚒

After updating all (other) Jenkins plugins (Jan 23, 2023), this plugin stopped working, the Jenkins node log showed "Socket not created by this factory".

A google search brought me to this StackOverflow, suggesting to try updating dependencies. After attempting to update individual dependencies first, I finally updated everything, which luckily worked.

🚧

To build the plugin

  • Switch to Java 11
  • Allow external HTTP repos in maven by creating a file ~/.m2/settings.xml with the following content:
    <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
        <mirrors>
              <mirror>
                  <id>maven-default-http-blocker</id>
                  <mirrorOf>dummy</mirrorOf>
                  <name>Dummy mirror to override default blocking mirror that blocks http</name>
                  <url>http://0.0.0.0/</url>
            </mirror>
        </mirrors>
    </settings>
    
  • Build the plugin by running mvn install -Dspotbugs.skip=true
  • Upload the target/ec2-start-stop.hpi file to a GitHub release
  • Copy the hpi file URL and use it in https://scala-ci.typesafe.com/manage/pluginManager/advanced to install ("deploy") the new version, restart Jenkins

🤨

  • Not sure where credentials are picked up.
  • Didn't figure out how to enable verbose logging for the AWS client library - that would be useful when things don't work.

About

A simple Jenkins plugin to start/stop EC2 workers as Jenkins nodes go on-line/off-line

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 97.5%
  • Java 2.5%