pipeline {
  agent any
  parameters {
    string(name: 'IMAGE_NAME', defaultValue: '', description: 'IMAGE_NAME')
    string(name: 'GWBT_RELEASE_ID', defaultValue: '', description: 'GWBT_RELEASE_ID')
    string(name: 'GWBT_RELEASE_BODY', defaultValue: '', description: 'GWBT_RELEASE_BODY')
  }
  stages {
    stage('Zip image') {
      steps {
        echo 'Zip image'
        sh "zip $BUILD_DIRECTORY/$IMAGE_NAME.zip $BUILD_DIRECTORY/$IMAGE_NAME"
        echo 'End of Zipping'
      }
    }
    stage('Upload image') {
      environment {
        CONFIG_FILE = 'coex-ci.conf'
      }
      steps {
        echo 'Upload image'
        parameters {
          string(name: 'IMAGE_LINK', defaultValue: '$($WORKSPACE/image/yadisk.py $BUILD_DIRECTORY/$CONFIG_FILE $BUILD_DIRECTORY/$IMAGE_NAME.zip)', description: 'IMAGE_NAME')
        }
        echo 'End of Upload'
      }
    }
    stage('Send image to TESTER') {
      steps {
        echo 'Send image'
        sh "# TODO"
        echo 'End of Send image'
      }
    }
    stage('Burn to MicroSD') {
      steps {
        echo 'Start Burn'
        sh "# dd of=/dev/sda if=$BUILD_DIRECTORY/$IMAGE_NAME"
        echo 'End of Burn'
      }
    }
    stage('Publish image') {
      environment {
        CONFIG_FILE = 'coex-ci.conf'
      }
      steps {
        echo 'Start Publish'
        sh "$WORKSPACE/image/git_release.py $BUILD_DIRECTORY/$CONFIG_FILE ${params.GWBT_RELEASE_ID} ${params.GWBT_RELEASE_BODY} $IMAGE_NAME $IMAGE_LINK $(du -sh $BUILD_DIRECTORY/$IMAGE_NAME.zip | awk '{ print $1 }')"
        echo 'End of Publish'
      }
    }
  }
  environment {
    BUILD_DIRECTORY = '/home/pi/temp'
  }
}
