71 lines
1.4 KiB
Groovy
71 lines
1.4 KiB
Groovy
pipeline {
|
|
agent {
|
|
docker {
|
|
image 'hub.davinti.com.br:443/infra/node:latest'
|
|
args '-u 1001:1001 --rm --entrypoint="" -e HOME=${WORKSPACE}'
|
|
}
|
|
}
|
|
|
|
environment {
|
|
S3_BUCKET = "s3://app-dono-manifests"
|
|
GIT_TOKEN = credentials('gitea-pat')
|
|
}
|
|
|
|
stages {
|
|
stage('Install') {
|
|
|
|
steps {
|
|
sh """
|
|
# Create a .netrc file so Git can find the PAT for your Gitea domain
|
|
echo "machine git.davinti.com.br" > ~/.netrc
|
|
echo "login jenkins" >> ~/.netrc
|
|
echo "password ${GIT_TOKEN}" >> ~/.netrc
|
|
chmod 600 ~/.netrc
|
|
|
|
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 {
|
|
sh 'rm -rf *'
|
|
script {
|
|
deleteDir()
|
|
}
|
|
}
|
|
success {
|
|
echo "✨ Manifest successfully uploaded to S3!"
|
|
}
|
|
failure {
|
|
echo "❌ Build failed. Check the logs for Jeff's validation errors."
|
|
}
|
|
}
|
|
}
|
|
|