Skip to content

Use bash Shell

Use bash Shell #15

Workflow file for this run

name: Build Project
on: [push, pull_request, workflow_dispatch]
jobs:
setup:
runs-on: ubuntu-latest
timeout-minutes: 30
name: Gradle Setup
steps:
- uses: actions/checkout@v4
- uses: gradle/actions/wrapper-validation@v3
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Change Permissions
run: chmod +x ./gradlew
- name: Gradle Information
run: ./gradlew project dependencies
test:
runs-on: ubuntu-latest
timeout-minutes: 30
needs: setup
name: Test Project
steps:
- uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: Change Permissions
run: chmod +x ./gradlew
- name: Gradle Test
run: ./gradlew test
- name: Collect JaCoCo Report
id: jacoco_reporter
uses: PavanMudigonda/[email protected]
with:
coverage_results_path: build/jacoco.xml
coverage_report_name: Code Coverage
github_token: ${{ secrets.GITHUB_TOKEN }}
skip_check_run: false
- name: Print JaCoCo Report
run: |
echo "| Outcome | Value |" >> $GITHUB_STEP_SUMMARY
echo "| --- | --- |" >> $GITHUB_STEP_SUMMARY
echo "| Code Coverage % | ${{ steps.jacoco_reporter.outputs.coverage_percentage }} |" >> $GITHUB_STEP_SUMMARY
echo "| :heavy_check_mark: Number of Lines Covered | ${{ steps.jacoco_reporter.outputs.covered_lines }} |" >> $GITHUB_STEP_SUMMARY
echo "| :x: Number of Lines Missed | ${{ steps.jacoco_reporter.outputs.missed_lines }} |" >> $GITHUB_STEP_SUMMARY
echo "| Total Number of Lines | ${{ steps.jacoco_reporter.outputs.total_lines }} |" >> $GITHUB_STEP_SUMMARY
- name: Upload Code Coverage Artifacts
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: "*/coverage-results.md"
build:
runs-on: ubuntu-latest
needs: setup
timeout-minutes: 30
strategy:
matrix:
java-version: [ 17, 21 ]
name: Build Java Project
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java-version }}
cache: 'gradle'
- name: Change Permissions
run: chmod +x ./gradlew
- name: Build with Gradle
run: ./gradlew assemble publishToMavenLocal
upload:
runs-on: ubuntu-latest
needs: build
timeout-minutes: 30
name: Create Artifacts
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Change Permissions
run: chmod +x ./gradlew
- name: Build with Gradle
run: ./gradlew clean assemble
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: codemc-api
path: |
build/libs/*.jar
# Test Jenkins Server
test-jenkins:
runs-on: ubuntu-latest
timeout-minutes: 30
name: Test Jenkins Server
needs: test
env:
# For Test Server
JENKINS_USERNAME: "admin"
JENKINS_PASSWORD: "password"
steps:
- uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: Test Jenkins Server
uses: addnab/docker-run-action@v3
with:
image: jenkins/jenkins:lts
options: -v ${{ github.workspace }}:/work
shell: bash
run: |
cd work
chmod +x ./gradlew
sudo ./gradlew test
# Test Nexus Server
test-nexus:
runs-on: ubuntu-latest
timeout-minutes: 30
name: Test Nexus Server
needs: test
env:
# For Test Server
NEXUS_INSTANCE: "true"
steps:
- uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: Test Nexus Server
uses: addnab/docker-run-action@v3
with:
image: sonatype/nexus3
options: -v ${{ github.workspace }}:/work
shell: bash
run: |
cd work
chmod +x ./gradlew
sudo ./gradlew test