Skip to content

fix: Escape dependency jar lock file's name (#77) #273

fix: Escape dependency jar lock file's name (#77)

fix: Escape dependency jar lock file's name (#77) #273

Workflow file for this run

name: Build with Gradle
on:
workflow_dispatch:
inputs:
releaseVersion:
type: string
description: New version for the release. When empty release publishing skipped.
default: ''
required: true
push:
branches: [ 'main' ]
pull_request:
branches: [ 'main' ]
jobs:
build:
strategy:
matrix:
os: [ubuntu-22.04, windows-2022]
runs-on: ${{ matrix.os }}
permissions:
actions: write
contents: read
steps:
- name: Change Gradle user home
shell: bash
if: ${{ startsWith(matrix.os, 'windows') }}
run: |
GRADLE_USER_HOME=${RUNNER_TEMP}\.gradle
mkdir -p "${GRADLE_USER_HOME}"
echo "GRADLE_USER_HOME=${GRADLE_USER_HOME}" >> ${GITHUB_ENV}
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up JDK
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
java-version-file: '.java-version'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3.5.0
- name: Bump version
if: github.event_name == 'workflow_dispatch' && github.event.inputs.releaseVersion != ''
run: |
./bumpVersion.sh "${RELEASE_VERSION}"
env:
RELEASE_VERSION: ${{ github.event.inputs.releaseVersion }}
- name: Publish Gradle Plugin to Maven Local
run: |
./gradlew :robolectric-extension-gradle-plugin:publishToMavenLocal --configure-on-demand
env:
JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_KEY: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_KEY }}'
JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_PASSWORD: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_PASSWORD }}'
- name: Build with Gradle Wrapper
run: |
./gradlew build koverXmlReport publish
env:
JUNIT5_ROBOLECTRIC_EXTENSION_MAVEN_USERNAME: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_MAVEN_USERNAME }}'
JUNIT5_ROBOLECTRIC_EXTENSION_MAVEN_PASSWORD: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_MAVEN_PASSWORD }}'
JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_KEY: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_KEY }}'
JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_PASSWORD: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_PASSWORD }}'
- name: Publish Gradle Plugin
run: |
./publishGradlePlugin.sh
env:
JUNIT5_ROBOLECTRIC_EXTENSION_GRADLE_PLUGIN_PORTAL_KEY: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GRADLE_PLUGIN_PORTAL_KEY }}'
JUNIT5_ROBOLECTRIC_EXTENSION_GRADLE_PLUGIN_PORTAL_SECRET: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GRADLE_PLUGIN_PORTAL_SECRET }}'
JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_KEY: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_KEY }}'
JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_PASSWORD: '${{ secrets.JUNIT5_ROBOLECTRIC_EXTENSION_GPG_SIGNING_PASSWORD }}'
- name: Upload unit test report
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
if: ${{ always() && hashFiles('**/test-results/**/*.xml') != '' }}
with:
name: ${{ matrix.os }}-unit-test-report
path: |
${{ github.workspace }}/**/build/reports/tests
${{ github.workspace }}/**/build/test-results
retention-days: 5
- name: Upload coverage report
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
if: ${{ always() && hashFiles('build/reports/kover/report.xml') != '' }}
with:
name: ${{ matrix.os }}-kover-report
path: ${{ github.workspace }}/build/reports/kover/report.xml
retention-days: 5
release:
runs-on: ubuntu-22.04
permissions:
contents: write
needs:
- build
if: github.ref_name == github.event.repository.default_branch && github.event_name == 'workflow_dispatch' && github.event.inputs.releaseVersion != '' && !endsWith(github.event.inputs.releaseVersion, 'SNAPSHOT')
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
ref: ${{ github.head_ref }}
- name: Create release
shell: bash
run: |
git config --global user.name "${GIT_USER_NAME}"
git config --global user.email "${GIT_USER_EMAIL}"
./tagRelease.sh "${RELEASE_VERSION}"
env:
GIT_USER_NAME: ${{ github.actor }}
GIT_USER_EMAIL: ${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
RELEASE_VERSION: ${{ github.event.inputs.releaseVersion }}
junit:
strategy:
matrix:
os: [ ubuntu-22.04, windows-2022 ]
runs-on: ${{ matrix.os }}
needs:
- build
permissions:
actions: read
checks: write
contents: read
if: github.repository == 'apter-tech/junit5-robolectric-extension' && github.event_name == 'pull_request'
steps:
- name: Download unit test report
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ matrix.os }}-unit-test-report
- name: Comment unit test report
if: ${{ hashFiles('**/test-results/**/*.xml') != '' }}
uses: mikepenz/action-junit-report@db71d41eb79864e25ab0337e395c352e84523afe # v4.3.1
with:
report_paths: '**/test-results/**/*.xml'
check_name: Unit test report (${{ matrix.os }})
kover:
strategy:
matrix:
os: [ ubuntu-22.04, windows-2022 ]
runs-on: ${{ matrix.os }}
needs:
- build
permissions:
actions: read
checks: write
contents: read
pull-requests: write
if: github.repository == 'apter-tech/junit5-robolectric-extension' && github.event_name == 'pull_request'
steps:
- name: Download coverage report
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{ matrix.os }}-kover-report
- name: Comment branch coverage report to PR
uses: mi-kas/kover-report@5f58465b6f395c8fa3adc2665e27250bad87de50 # v1.9
if: ${{ hashFiles('report.xml') != '' }}
with:
path: ${{ github.workspace }}/report.xml
title: Branch Coverage (${{ matrix.os }})
update-comment: true
min-coverage-overall: 60
min-coverage-changed-files: 70
coverage-counter-type: BRANCH
- name: Comment line coverage report to PR (${{ matrix.os }})
uses: mi-kas/kover-report@5f58465b6f395c8fa3adc2665e27250bad87de50 # v1.9
if: ${{ hashFiles('report.xml') != '' }}
with:
path: ${{ github.workspace }}/report.xml
title: Line Coverage (${{ matrix.os }})
update-comment: true
min-coverage-overall: 60
min-coverage-changed-files: 70
coverage-counter-type: LINE