pipeline {
	agent {
		docker {
			image 'hub.davinti.com.br:443/infra/node:latest'
				args '-u root'
		}
	}

	environment {
		S3_BUCKET = "s3://app-dono-manifests"
	}

	stages {
		stage('Install') {
			steps {
				sh 'npm install'
			}
		}

		stage('Vet') {
			steps {
				echo 'Validating modules (Standard for all branches)...'
					sh 'npx jeff vet -i "src/**/*.module.ts" --strict'
			}
		}

		stage('Generate & Upload') {
			when {
				branch 'main'
			}
			steps {
				echo 'Generating manifest and deploying to S3...'
					sh 'npm run generate:output'

					withAWS(credentials: 'aws-jeff-credentials-id', region: 'sa-east-1') {
						script {
							echo "Uploading to S3..."
							sh "aws s3 cp dist/manifest.json ${S3_BUCKET}/manifest.json"
						}
					}
			}
		}
	}

	post {
		always {
			echo "Finished build for ${env.BRANCH_NAME}"
		}
	}
}
