Skip to content

Update main.yml #2

Merged
merged 1 commit into from
Dec 3, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 30 additions & 50 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,96 +1,84 @@
name: CI/CD Pipeline
name: CI/CD Workflow

on:
push:
branches:
- main
workflow_dispatch: # For manual triggers
workflow_dispatch: # Allows manual triggering of the workflow

jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Maven
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Compile Project
- name: Build with Maven
run: mvn compile

test:
name: Test
runs-on: ubuntu-latest
services:
docker:
image: docker:20.10-dind
options: --privileged
env:
DOCKER_HOST: tcp://localhost:2375
DOCKER_TLS_CERTDIR: ""
DOCKER_DRIVER: overlay2
steps:
- uses: actions/checkout@v3
- name: Set up Maven
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Run Tests
run: |
mvn clean test
mkdir -p artifacts/junit
cp target/surefire-reports/*.xml artifacts/junit/
mkdir -p artifacts/coverage
cp target/jacoco/coverage-reports/*.xml artifacts/coverage/
run: mvn clean test
- name: Upload Test Results
uses: actions/upload-artifact@v3
with:
name: junit-reports
path: artifacts/junit
- name: Upload Coverage Reports
name: surefire-reports
path: target/surefire-reports/
- name: Upload Coverage Report
uses: actions/upload-artifact@v3
with:
name: coverage-reports
path: artifacts/coverage
name: jacoco-report
path: target/jacoco/coverage-reports/jacoco.xml

package:
name: Package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Maven
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Package Project
- name: Build Package
run: mvn clean package
- name: Upload JAR
- name: Upload Package
uses: actions/upload-artifact@v3
with:
name: packaged-jar
name: packaged-app
path: target/idatt2002demo-1.0-SNAPSHOT-jar-with-dependencies.jar

generate-pdf:
name: Generate PDF
runs-on: ubuntu-20.04
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch' # Manual trigger
steps:
- name: Install Dependencies
- name: Set up Environment
run: |
sudo apt-get update
sudo apt-get install -y wget fontconfig libfreetype6 libjpeg-turbo8 libpng16-16 libx11-6 libxcb1 libxext6 libxrender1 xfonts-75dpi xfonts-base
sudo apt-get install -y nodejs npm git
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb
sudo apt-get install -y nodejs npm git
npm install -g github-wikito-converter
- name: Clone Wiki Repository
- name: Clone Wiki
run: |
git clone https://<USERNAME>:<TOKEN>@github.com/<ORG>/<REPO>.wiki.git
gwtc <REPO>.wiki
git clone https://github.com/${{ github.repository }}.wiki.git
cd ${{ github.repository }}.wiki
gwtc ${{ github.repository }}
- name: Convert to PDF
run: wkhtmltopdf documentation.html wiki.pdf
- name: Upload PDF
Expand All @@ -99,30 +87,22 @@ jobs:
name: wiki-pdf
path: wiki.pdf

deploy-pages:
name: Deploy Pages
pages:
name: Publish Pages
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
if: github.event_name == 'workflow_dispatch' # Manual trigger
steps:
- uses: actions/checkout@v3
- name: Set up Maven
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Generate Javadoc and Pages
- name: Generate Javadoc
run: |
mvn clean package
mvn javadoc:javadoc
mkdir -p public/apidocs
cp -r target/site/apidocs/* public/apidocs/
cp -r target/jacoco/* public/
cp -r page/index.html public/
- name: Deploy to GitHub Pages
uses: actions/upload-pages-artifact@v1
- name: Publish to Pages
uses: actions/upload-pages-artifact@v2
with:
path: public
- name: Publish Pages
uses: actions/deploy-pages@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
Loading