Skip to content

Hillelmed is running Jenkins REST CI Build on GitHub Actions 🚀 #31

Hillelmed is running Jenkins REST CI Build on GitHub Actions 🚀

Hillelmed is running Jenkins REST CI Build on GitHub Actions 🚀 #31

Workflow file for this run

name: Jenkins REST CI Build
run-name: ${{ github.actor }} is running Jenkins REST CI Build on GitHub Actions 🚀
on: [push, pull_request_target]
jobs:
build:
# You must use a Linux environment when using service containers or container jobs
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ 17 ]
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: ${{ matrix.java-version }}
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- name: Build Jenkins LTS docker images
run: docker build -t jenkins-rest/jenkins src/main/docker
- name: Run Jenkins LTS docker images
run: docker run -d --rm -p 8080:8080 --name jenkins-rest jenkins-rest/jenkins
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
- name: Execute Gradle build
run: ./gradlew clean
- name: Build with Gradle
run: ./gradlew build
- name: Run tests
run: ./gradlew test mockTest integTest
- name: Generate JaCoCo report
run: ./gradlew jacocoTestReport
- name: Jacoco Report to PR
id: jacoco
uses: madrapps/jacoco-report@v1.6.1
with:
paths: ${{ github.workspace }}/build/jacoco/jacocoXml.xml
token: ${{ secrets.GITHUB_TOKEN }}
min-coverage-overall: '80%'
min-coverage-changed-files: '80%'
update-comment: true
title: 'Jacoco Report'
- name: Generate JaCoCo Badge
uses: cicirello/jacoco-badge-generator@v2
with:
generate-branches-badge: true
jacoco-csv-file: ${{ github.workspace }}/build/jacoco/jacocoCsv.csv
# Publish Coverage Job Summary # Optional
- name: Add Coverage Job Summary
run: echo "${{ steps.jacoco_reporter.outputs.coverageSummary }}" >> $GITHUB_STEP_SUMMARY
- name: Get the Coverage info
run: |
echo "Total coverage coverage-overall ${{ steps.jacoco.outputs.coverage-overall }}"
echo "Changed Files coverage ${{ steps.jacoco.outputs.coverage-changed-files }}"
echo "Coverage coverage_percentage ${{ steps.jacoco.outputs.coverage_percentage }}"
- name: construct coverage job summary markdown
run: |
cat > coverage_summary.md <<EOF
| Code Coverage Summary | Value |
|--------------------------------------------|----------------------------------------------------------|
| Code Coverage % | ${{ steps.jacoco_reporter.outputs.coverage_percentage }} |
| :heavy_check_mark: Number of Lines Covered | ${{ steps.jacoco_reporter.outputs.covered_lines }} |
| :x: Number of Lines Missed | ${{ steps.jacoco_reporter.outputs.missed_lines }} |
| Total Number of Lines | ${{ steps.jacoco_reporter.outputs.total_lines }} |
EOF
cat coverage_summary.md >> $GITHUB_STEP_SUMMARY
- name: Add Coverage Job Summary
run: echo "${{ steps.jacoco_reporter.outputs.coverageSummary }}" >> $GITHUB_STEP_SUMMARY
- name: Stop docker
run: docker stop jenkins-rest