Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:cicd:learningunits:lu09:b [2026/04/07 14:51] apeterde:modul:ffit:3-jahr:cicd:learningunits:lu09:b [2026/04/07 14:55] (aktuell) apeter
Zeile 83: Zeile 83:
 </code> </code>
 </WRAP> | </WRAP> |
 +
 +==== Beispiel-Deployment ====
 +Alle Stages für das Deployment von https://github.com/AlexanderPeter/cicd auf der AWS-Umgebung ist hier aufgeführt.
 +
 +<code bash>
 +pipeline {
 +    agent any
 +
 +    environment {
 +        PROJECT_NAME       = "cicd"
 +        BRANCH_NAME        = "develop"
 +        REPO_URL           = "https://github.com/AlexanderPeter/${PROJECT_NAME}.git"
 +        TARGET_DIR         = "/var/jenkins_home/projects/${PROJECT_NAME}/${BRANCH_NAME}"
 +        SONAR_SCANNER_OPTS = "-Xmx512m"
 +        BACKEND_CONTAINER  = "${PROJECT_NAME}_${BRANCH_NAME}_backend"
 +        DB_CONTAINER       = "${PROJECT_NAME}_${BRANCH_NAME}_db"
 +        DB_VOLUME          = "${PROJECT_NAME}_${BRANCH_NAME}_db_data"
 +        DB_USER            = "appuser"
 +        DB_PASSWORD        = "apppassword"
 +        DB_NAME            = "appdb"
 +    }
 +
 +    stages {
 +        stage('Checkout') {
 +            steps {
 +                git branch: BRANCH_NAME,
 +                    url: REPO_URL
 +            }
 +        }
 +        
 +        stage('Start Database') {
 +            when {
 +                expression { false }
 +            }
 +            steps {
 +                sh '''
 +                    echo "Starting DB with workspace $WORKSPACE"
 +                    
 +                    docker stop $DB_CONTAINER || true
 +                    docker rm $DB_CONTAINER || true
 +
 +                    docker run -d \
 +                      --name $DB_CONTAINER \
 +                      --network infra-net \
 +                      -e POSTGRES_USER=$DB_USER \
 +                      -e POSTGRES_PASSWORD=$DB_PASSWORD \
 +                      -e POSTGRES_DB=$DB_NAME \
 +                      -v $DB_VOLUME:/var/lib/postgresql/data \
 +                      -v $WORKSPACE/database:/docker-entrypoint-initdb.d \
 +                      postgres:17
 +                '''
 +            }
 +        }
 +        
 +        stage('Initialize Database') {
 +            when {
 +                expression { false }
 +            }
 +            steps {
 +                sh '''
 +                    TABLE_EXISTS=$(docker exec $DB_CONTAINER psql -U $DB_USER -d $DB_NAME -tAc "SELECT to_regclass('public.poll')")
 +                    if [ "$TABLE_EXISTS" = "" ]; then
 +                        echo "Initializing schema..."
 +                        docker exec -i $DB_CONTAINER psql -U $DB_USER -d $DB_NAME < database/schema.sql
 +                    else
 +                        echo "Database already initialized."
 +                    fi
 +                '''
 +            }
 +        }
 +
 + stage('Build Frontend') {
 +            when {
 +                expression { false }
 +            }
 +            steps {
 +                dir('frontend') {
 +                    sh '''
 +                 npm install
 +         GENERATE_SOURCEMAP=false \
 +                NODE_OPTIONS="--max-old-space-size=1024" \
 +                PUBLIC_URL=/projects/${PROJECT_NAME}/${BRANCH_NAME} \
 +                REACT_APP_API_BASE=/api/${PROJECT_NAME}/${BRANCH_NAME}/api \
 +                npm run build
 +                    '''
 +                }
 +            }
 +        }
 +
 +        stage('Deploy Frontend') {
 +            when {
 +                expression { false }
 +            }
 +            steps {
 +                sh '''
 +                    echo "Deploying frontend to $TARGET_DIR"
 +
 +                    mkdir -p "$TARGET_DIR"
 +                    rm -rf "$TARGET_DIR"/*
 +
 +                    cp -r frontend/build/* "$TARGET_DIR"/
 +                '''
 +            }
 +        }
 +        
 +        stage('Deploy Backend') {
 +            when {
 +                expression { false }
 +            }
 +            steps {
 +                sh '''
 +                    docker build -t $BACKEND_CONTAINER backend/
 +                    
 +                    docker stop $BACKEND_CONTAINER || true
 +                    docker rm $BACKEND_CONTAINER || true
 +
 +                    docker run -d \
 +                        --name $BACKEND_CONTAINER \
 +                        --network infra-net \
 +                        -e DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@$DB_CONTAINER:5432/$DB_NAME" \
 +                        $BACKEND_CONTAINER
 +                '''
 +            }
 +        }
 +    }
 +}
 +
 +</code>
  
  • de/modul/ffit/3-jahr/cicd/learningunits/lu09/b.1775566286.txt.gz
  • Zuletzt geändert: 2026/04/07 14:51
  • von apeter