I'm having a TON of problems getting the pipeline system setup and working. 
One issue in particular is troubling me. I have a shared library that has a 
custom step in vars/publishToS3.groovy. It looks like this:
#!/usr/bin/env groovy
package com.seven10;


def call(hashmap){
 def src_file = hashmap['src_file']
 def target_path = hashmap['target_path']
 def bucket_name = hashmap.get('bucket_name', '...')
 def region = hashmap.get('region', '...')
 def credentials = hashmap.get('credentials', '...')
 
 withAWS(credentials: credentials, region: region) {
 s3Upload bucket: bucket_name, file: src_file, path: target_path
 }
}

But I kept getting weird errors in my build job (like 
'groovy.lang.MissingPropertyException: 
No such property: publish for class: groovy.lang.Binding') So in order to 
attempt to debug it, I created the following script in the script console.

def call(hashmap){
    def src_file = hashmap['src_file']
    def target_path = hashmap['target_path']
    def bucket_name = hashmap.get('bucket_name', '...')
    def region = hashmap.get('region', '...')
    def credentials = hashmap.get('credentials', '...')
    try {
      withAWS(credentials: credentials, region: region) {
        try {
          s3Upload(bucket: bucket_name, file: src_file, path: target_path)
        }
        catch(error){
           println('inner-try: ' + error)
           throw error
        }
      }
    }
    catch(error){
      println('outer-try: ' + error)
    }
}


call src_file: 'blah', target_path: 'blahblah'

But when I execute this script I get the error:

outer-try: groovy.lang.MissingMethodException: No signature of method: 
Script1.withAWS() is applicable for argument types: (java.util.LinkedHashMap, 
Script1$_call_closure1) values: [[credentials:..., region:...], 
Script1$_call_closure1@47e8f461] Possible solutions: with(groovy.lang.Closure)

The docs for the withAWS step show it being called with a closure block in just 
this way (see here <https://github.com/jenkinsci/pipeline-aws-plugin#withaws>).
The only other thing I can think of is that its not actually finding the 
withAWS step (as demonstrated by the fact that it is called "Script1.withAWS") 
if thats the case, how would I make sure its finding the actual plugin step 
instead of trying to find a local variable?


-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/30eea0d8-10a5-4fce-b050-3064c2c475fb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to