Skip to content

Create CONTRIBUTING.md #23

Create CONTRIBUTING.md

Create CONTRIBUTING.md #23

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: Setup Servers
run: |
docker build -t nexus-rest/nexus src/test/docker/nexus
docker run -d -p 8081:8081 --name nexus-rest nexus-rest/nexus
docker build -t jenkins-rest/jenkins src/test/docker/jenkins
docker run -d -p 8080:8080 --name jenkins-rest jenkins-rest/jenkins
- name: Wait for Jenkins
run: |
echo "Waiting for Jenkins to be ready..."
sleep 60
until curl -s http://localhost:8080 | grep "Dashboard"; do
sleep 10
done
- name: Wait for Nexus
run: |
echo "Waiting for Nexus to be ready..."
sleep 60
until curl -s http://localhost:8081; do
sleep 10
done
- name: Gradle Test
run: |
docker cp nexus-rest:/nexus-data/admin.password /tmp/admin.password
./gradlew test
rm -rf /tmp/admin.password
- name: Stop Servers
if: success() || failure()
run: |
docker stop jenkins-rest
docker rm jenkins-rest
docker stop nexus-rest
docker rm nexus-rest
- 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