Skip to content

Testing v0.42.2 (Rascal) with v0.16.7 (Typepal) #415

Testing v0.42.2 (Rascal) with v0.16.7 (Typepal)

Testing v0.42.2 (Rascal) with v0.16.7 (Typepal) #415

name: Integration Test
run-name: Testing `${{ inputs.rascal_version }}` (Rascal) with ${{ case(inputs.typepal_version != '', format('`{0}`', inputs.typepal_version), 'version in pom.xml') }} (Typepal)
on:
workflow_dispatch:
inputs:
rascal_version:
description: 'rascal branch/tag to checkout'
required: true
default: 'main'
typepal_version:
description: 'typepal branch/tag to checkout (leave empty to read in pom.xml)'
required: false
default: ''
dependencies_on_lib_path:
description: 'Put tpls of dependencies on lib path'
required: true
default: 'true'
also_check_compiler:
description: 'Run the typechecker on the compiler'
required: true
default: 'true'
do_package:
description: 'Run the packager'
required: true
default: 'true'
env:
MAVEN_OPTS: "-Xmx4G -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
IS_OWN_PR: "${{ secrets.MAVEN_MIRROR_URL }}"
jobs:
test:
runs-on: ubicloud-standard-4
strategy:
matrix:
target:
- "'rascal' 'flybytes' 'salix-core' 'salix-contrib' 'drambiguity' 'rascal-lsp' 'rascal-git' 'php-analysis' 'typepal' 'clair' 'java-air' 'python-air' 'rascal-lucene'"
- "'rascal-all' 'rascal-lsp-all'"
fail-fast: false
steps:
- uses: actions/checkout@v4
name: 'Checkout rascal (${{ inputs.rascal_version }})'
with:
repository: 'usethesource/rascal'
ref: ${{ inputs.rascal_version }}
path: 'deps/rascal'
- uses: actions/checkout@v4
if: ${{ inputs.typepal_version != '' }}
name: 'Checkout typepal (${{ inputs.typepal_version }})'
with:
repository: 'usethesource/typepal'
ref: ${{ inputs.typepal_version }}
path: 'deps/typepal'
- uses: s4u/maven-settings-action@v3.1.0
if: ${{ env.IS_OWN_PR != '' }}
with:
servers: '[{"id": "usethesource-gh", "username":"github", "password": "${{ secrets.MAVEN_MIRROR_PASSWORD }}"}]'
mirrors: '[{"id": "usethesource-gh", "name": "uts mirror", "mirrorOf": "usethesource", "url": "${{ secrets.MAVEN_MIRROR_URL }}"}]'
- uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
cache: 'maven'
cache-dependency-path: 'deps/rascal/pom.xml'
- name: Install typepal
if: ${{ inputs.typepal_version != '' }}
run: mvn -B install -Drascal.tutor.skip -DskipTests -Drascal.compile.skip -Drascal.package.skip
working-directory: deps/typepal
- name: Read typepal version from pom.xml
if: ${{ inputs.typepal_version == '' }}
id: read-pom
run: echo "typepal_version=$(mvn dependency:list | grep typepal | sed 's/.*org.rascalmpl:typepal:jar:\(.*\):.*/\1/')" >> "$GITHUB_OUTPUT"
working-directory: deps/rascal
- name: Compile rascal java
run: mvn -B clean compile package -Drascal.tutor.skip -DskipTests -Drascal.compile.skip -Drascal.package.skip
working-directory: deps/rascal
- name: copy rascal jar to predictable location and cleanup
run: |
rm deps/rascal/target/*-sources.jar
find deps/rascal/target -maxdepth 1 -name 'rascal-*.jar' -exec mv '{}' ${{ runner.temp }}/rascal.jar \;
rm -rf deps
- name: Checkout integration-script
uses: actions/checkout@v4
- name: Typecheck
if: ${{ !contains(matrix.target, 'rascal-all') || inputs.also_check_compiler }}
env:
JAVA_TOOL_OPTIONS: "-Djava.io.tmpdir=${{ runner.temp }}"
run: |
java -DRASCAL_BRANCH="${{ inputs.rascal_version }}" -DTYPEPAL_BRANCH="${{ case(inputs.typepal_version != '', inputs.typepal_version, format('v{0}', steps.read-pom.outputs.typepal_version)) }}" -DRASCAL_ALL_BRANCH="${{ inputs.rascal_version }}" -Xmx500m -jar ${{ runner.temp }}/rascal.jar Main \
--libs "${{ inputs.dependencies_on_lib_path }}" \
--maxCores 4 \
--memory 12G \
--rascalVersion "|file:///${{ runner.temp }}/rascal.jar|" \
--repoFolder "|cwd:///repos|" \
--full false \
--clean \
--package "${{inputs.do_package}}" \
--tests ${{ matrix.target }}