#!/usr/bin/env groovy
@Library('rainbow-shared-library@hubSearchIndex')

def version() {
    def packageJson = readJSON file: 'package.json'
    packageJson.version
}

try {
    stage('Packaging') {
        node('docker-slave-cpaas-bullseye-node18') {
            stage('Checkout') {
                checkout scm
            }

            def version = version()
            env.NEXT_VERSION = version
            if (version) {
                echo "Building version ${version}"
            }

            stage("Generate documentation search index") {
                generateHubV2DocumentationSearchIndex("doc")
                sh "ls -la ."
            }

            stage('Sitemap Generation') {
                sh '''
                    rm -f package-lock.json
                    npm i
                    npm i sitemap@2.2.0
                    node sitemap_generation.js
                '''
            }

            stage('Debian Build') {
                debianBuild(
                    debianPath: '.',
                    nextVersion: env.NEXT_VERSION,
                    language: 'other'
                )
            }
            
            stage('Debian Publish') {
                echo debianPublish.getDebianArtifacts().join('\n')
                debianPublish(
                    repository: 'nightly-non-free-bullseye',
                    package: '*.deb'
                )
            }
        }
    }
    stage('Post Build') {
        addShortText(text: "deb ${env.NEXT_VERSION}", background: "#FFDA47", border: 1, borderColor: "#0066FF", color: "#000000")
    }
}
catch (Exception e) {
    echo "Failure: ${currentBuild.result}"
}
finally {
    notifyBuild(currentBuild.result)
}