Skip to content

Update to JCOBridge 2.5.17, update version and added tests on MacOS #134

Update to JCOBridge 2.5.17, update version and added tests on MacOS

Update to JCOBridge 2.5.17, update version and added tests on MacOS #134

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI_PULLREQUEST
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
pull_request:
branches: [ master ]
# This workflow contains two jobs called "check" and "build_windows"
jobs:
# Verify if a build is needed
check:
name: Check changed files
outputs:
run_job: ${{ steps.check_files.outputs.run_job }}
runs-on: ubuntu-latest
steps:
- id: get_changed_files
uses: masesgroup/retrieve-changed-files@v3
with:
format: 'csv'
- id: check_files
run: |
mapfile -d ',' -t added_modified_files < <(printf '%s,' '${{ steps.get_changed_files.outputs.added_modified }}')
for added_modified_file in "${added_modified_files[@]}"; do
if [[ $added_modified_file == ".github/workflows/pullrequests.yaml"* ]]; then
echo "$added_modified_file is under the directory '.github/workflows'."
echo "run_job=true" >> $GITHUB_OUTPUT
break
fi
if [[ $added_modified_file == "src/jvm/src/JCOReflector/"* ]]; then
echo "$added_modified_file is under the directory 'src/jvm/src/JCOReflector'."
echo "run_job=true" >> $GITHUB_OUTPUT
break
fi
if [[ $added_modified_file == "src/"* ]]; then
echo "$added_modified_file is under the directory 'src/'."
echo "run_job=true" >> $GITHUB_OUTPUT
break
fi
if [[ $added_modified_file == "tests/jvm/"* ]]; then
echo "$added_modified_file is under the directory 'tests/jvm/'."
echo "run_job=true" >> $GITHUB_OUTPUT
break
fi
done
# This workflow contains a single job called "build"
build_and_verify_nuget:
needs: check
if: needs.check.outputs.run_job == 'true'
# The type of runner that the job will run on
runs-on: windows-2022
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Runs a set of commands using the runners shell
# Support longpaths
- name: Support long paths
run: git config --system core.longpaths true
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
with:
fetch-depth: '1'
# Runs a set of commands using the runners shell
- name: Build JCOReflectorCLI
run: dotnet build --no-incremental --configuration Release /p:Platform="Any CPU" src\net\JCOReflectorCLI.sln
- uses: nuget/setup-nuget@v2.0.0
with:
nuget-version: '5.x'
- run: nuget pack src\net\CLI\JCOReflectorCLI.nuspec -OutputDirectory .\bin
# This workflow contains a single job called "build"
build_matrix:
needs: check
if: needs.check.outputs.run_job == 'true'
# The type of runner that the job will run on
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
framework: [ 'net462', 'net6.0', 'net8.0' ]
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Runs a set of commands using the runners shell
# Support longpaths
- name: Support long paths
run: git config --system core.longpaths true
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
with:
fetch-depth: '1'
# Runs a set of commands using the runners shell
- name: Build JCOReflectorCLI
run: dotnet build --no-incremental --framework ${{ matrix.framework }} --configuration Release /p:Platform="Any CPU" src\net\JCOReflectorCLI.sln
# Runs a set of commands using the runners shell
- name: Copy configuration file
if: matrix.framework != 'net462'
run: Copy-Item .github\workflows\JCOReflectorCLI_${{ matrix.framework }}.runtimeconfig.json -Destination bin\${{ matrix.framework }}\MASES.JCOReflectorCLI.runtimeconfig.json -Force
- name: Remove Java files
run: Remove-Item .\src\jvm\src\${{ matrix.framework }} -Recurse -Force
- name: Reflect Java files
run: .\bin\${{ matrix.framework }}\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_${{ matrix.framework }}.job
- name: Compress source files
run: Compress-Archive -Path .\src\jvm\src\${{ matrix.framework }}\* -DestinationPath .\source_${{ matrix.framework }}.zip
- uses: actions/upload-artifact@v4
with:
name: LatestSource_${{ matrix.framework }}
path: .\source_${{ matrix.framework }}.zip
retention-days: 1
- name: Build Java files
run: .\bin\${{ matrix.framework }}\MASES.JCOReflectorCLI -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
- name: Build JAR files .NET
run: .\bin\${{ matrix.framework }}\MASES.JCOReflectorCLI -JobType CreateJars -JobFile .github\workflows\createjars_${{ matrix.framework }}_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.framework }}
path: .\bin\${{ matrix.framework }}\*.*
retention-days: 1
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'maven'
- name: Build Java test source file
run: javac -cp ./bin/${{ matrix.framework }}/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
- name: Download Scala package
run: C:\msys64\usr\bin\wget.exe https://downloads.lightbend.com/scala/2.13.5/scala-2.13.5.zip
- name: Expand Scala package
run: Expand-Archive -LiteralPath '.\scala-2.13.5.zip' -DestinationPath .\ -Force
- name: Build Scala test source file
shell: cmd
run: |
cd ./tests/jvm/scala
mkdir output
..\..\..\scala-2.13.5\bin\scalac -toolcp "../../../bin/${{ matrix.framework }}/*" -d ./output ./src/main/scala/hierarchy/* ./src/main/scala/mscorlib/* ./src/main/scala/nettest/* ./src/main/scala/refout/*