diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 43bb471..42b93ad 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -4,75 +4,94 @@ name: Build and Deploy on: - push: - branches: - - main + push: + branches: + - main - workflow_dispatch: + workflow_dispatch: jobs: - build: - runs-on: ubuntu-latest - permissions: - contents: read + build: + runs-on: ubuntu-latest + permissions: + contents: read - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - java-version: "11" - distribution: "adopt" + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: "11" + distribution: "adopt" - - run: mkdir ./target + - run: mkdir ./target - - name: Build with Maven - run: mvn -f tapas-tasks/pom.xml --batch-mode --update-snapshots verify - - run: cp ./tapas-tasks/target/tapas-tasks-0.0.1-SNAPSHOT.jar ./target + - name: Cache Maven packages + uses: actions/cache@v1 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 - - name: Build with Maven - run: mvn -f app/pom.xml --batch-mode --update-snapshots verify - - run: cp ./app/target/app-0.1.0.jar ./target + - name: Build with Maven + run: mvn -f assignment/pom.xml --batch-mode --update-snapshots verify + - run: cp ./assignment/target/assignment-0.0.1-SNAPSHOT.jar ./target - - run: cp ./.deployment/docker-compose.yml ./target - - name: Archive artifacts - uses: actions/upload-artifact@v1 - with: - name: app - path: ./target/ + - name: Build with Maven + run: mvn -f executor-pool/pom.xml --batch-mode --update-snapshots verify + - run: cp ./executor-pool/target/executor-pool-0.0.1.jar ./target - deploy: - runs-on: ubuntu-latest - needs: [build] - steps: - - name: Download app artifacts - uses: actions/download-artifact@v1 - with: - name: app - - name: Copy host via scp - uses: appleboy/scp-action@master - env: - HOST: ${{ secrets.SSH_HOST }} - USERNAME: ${{ secrets.SSH_USER }} - PORT: 22 - KEY: ${{ secrets.SSH_PRIVATE_KEY }} - with: - source: "app/*" - target: "/home/${{ secrets.SSH_USER }}/" - strip_components: 1 - rm: false - overwrite: true + - name: Build with Maven + run: mvn -f executor1/pom.xml --batch-mode --update-snapshots verify + - run: cp ./executor1/target/executor1-0.0.1.jar ./target - - name: Executing remote command - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.SSH_HOST }} - USERNAME: ${{ secrets.SSH_USER }} - PORT: 22 - KEY: ${{ secrets.SSH_PRIVATE_KEY }} - script: | - cd /home/${{ secrets.SSH_USER }}/ - touch acme.json - sudo chmod 0600 acme.json - sudo echo "PUB_IP=$(wget -qO- http://ipecho.net/plain | xargs echo)" | sed -e 's/\./-/g' > .env - sudo docker-compose up -d + - name: Build with Maven + run: mvn -f executor2/pom.xml --batch-mode --update-snapshots verify + - run: cp ./executor2/target/executor2-0.0.1.jar ./target + + - name: Build with Maven + run: mvn -f tapas-tasks/pom.xml --batch-mode --update-snapshots verify + - run: cp ./tapas-tasks/target/tapas-tasks-0.0.1.jar ./target + + - run: cp ./.deployment/docker-compose.yml ./target + - name: Archive artifacts + uses: actions/upload-artifact@v1 + with: + name: app + path: ./target/ + + deploy: + runs-on: ubuntu-latest + needs: [build] + steps: + - name: Download app artifacts + uses: actions/download-artifact@v1 + with: + name: app + - name: Copy host via scp + uses: appleboy/scp-action@master + env: + HOST: ${{ secrets.SSH_HOST }} + USERNAME: ${{ secrets.SSH_USER }} + PORT: 22 + KEY: ${{ secrets.SSH_PRIVATE_KEY }} + with: + source: "app/*" + target: "/home/${{ secrets.SSH_USER }}/" + strip_components: 1 + rm: false + overwrite: true + + - name: Executing remote command + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.SSH_HOST }} + USERNAME: ${{ secrets.SSH_USER }} + PORT: 22 + KEY: ${{ secrets.SSH_PRIVATE_KEY }} + script: | + cd /home/${{ secrets.SSH_USER }}/ + touch acme.json + sudo chmod 0600 acme.json + sudo echo "PUB_IP=$(wget -qO- http://ipecho.net/plain | xargs echo)" | sed -e 's/\./-/g' > .env + sudo docker-compose up -d diff --git a/.github/workflows/ci.executor1.yml b/.github/workflows/ci.executor1.yml index 277d313..5d48580 100644 --- a/.github/workflows/ci.executor1.yml +++ b/.github/workflows/ci.executor1.yml @@ -1,41 +1,45 @@ name: CI Executor 1 on: - push: - branches: [main, dev] - paths: - - "executor1/**" - pull_request: - branches: [main, dev] - paths: - - "executor1/**" + push: + branches: [main, dev] + paths: + - "executor-base/**" + - "executor1/**" + pull_request: + branches: [main, dev] + paths: + - "executor-base/**" + - "executor1/**" - workflow_dispatch: + workflow_dispatch: jobs: - build: - name: Build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Cache SonarCloud packages - uses: actions/cache@v1 - with: - path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar - - name: Cache Maven packages - uses: actions/cache@v1 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} - restore-keys: ${{ runner.os }}-m2 - - name: Build and analyze - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: mvn -f executor1/pom.xml -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=scs-asse-fs21-group1_tapas-executor1 + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Cache SonarCloud packages + uses: actions/cache@v1 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Cache Maven packages + uses: actions/cache@v1 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + - name: Build executorBase + run: mvn -f executor-base/pom.xml -B verify + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: mvn -f executor1/pom.xml -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=scs-asse-fs21-group1_tapas-executor1 diff --git a/.github/workflows/ci.executor2.yml b/.github/workflows/ci.executor2.yml index d763cd1..32a59a8 100644 --- a/.github/workflows/ci.executor2.yml +++ b/.github/workflows/ci.executor2.yml @@ -1,41 +1,45 @@ name: CI Executor 2 on: - push: - branches: [main, dev] - paths: - - "executor2/**" - pull_request: - branches: [main, dev] - paths: - - "executor2/**" + push: + branches: [main, dev] + paths: + - "executor-base/**" + - "executor2/**" + pull_request: + branches: [main, dev] + paths: + - "executor-base/**" + - "executor2/**" - workflow_dispatch: + workflow_dispatch: jobs: - build: - name: Build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Cache SonarCloud packages - uses: actions/cache@v1 - with: - path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar - - name: Cache Maven packages - uses: actions/cache@v1 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} - restore-keys: ${{ runner.os }}-m2 - - name: Build and analyze - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: mvn -f executor2/pom.xml -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=scs-asse-fs21-group1_tapas-executor2 + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Cache SonarCloud packages + uses: actions/cache@v1 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Cache Maven packages + uses: actions/cache@v1 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + - name: Build executorBase + run: mvn -f executor-base/pom.xml -B verify + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: mvn -f executor2/pom.xml -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=scs-asse-fs21-group1_tapas-executor2