Files
tkinaba 17141b7e76
davinTI/app-dono-modulos/pipeline/head This commit looks good
ci: push migration tar to s3
2026-03-12 16:33:49 -03:00

74 lines
1.6 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'
sh 'tar -czvf migrations.tar.gz -C migrations/ .'
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"
sh "aws s3 cp migrations.tar.gz ${S3_BUCKET}/migrations.tar.gz"
}
}
}
}
}
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."
}
}
}