Skip to content

Integration Test

Integration Test #236

name: Integration Test
on:
workflow_dispatch:
inputs:
rascal_version:
description: 'rascal branch/tag to checkout'
required: true
default: 'main'
dependencies_on_lib_path:
description: 'Put tpls of dependencies on lib path'
required: true
default: 'true'
jobs:
prepare-deps:
runs-on: buildjet-2vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v4
name: 'Checkout rascal (${{ inputs.rascal_version }})'
with:
repository: 'usethesource/rascal'
ref: ${{ inputs.rascal_version }}
path: 'deps/rascal'
- uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
cache: 'maven'
cache-dependency-path: 'deps/rascal/pom.xml'
- name: Compile rascal java
run: mvn -B clean compile package -Drascal.tutor.skip -DskipTests -Drascal.compile.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 '{}' deps/rascal/rascal.jar \;
rm -rf deps/rascal/target
- uses: actions/upload-artifact@v4
name: 'Store dependencies for the other jobs'
with:
name: deps
path: deps/
retention-days: 1
rascal:
runs-on: buildjet-4vcpu-ubuntu-2204
needs: prepare-deps
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
- uses: actions/download-artifact@v4
with:
name: deps
- name: Typecheck rascal
env:
JAVA_TOOL_OPTIONS: "-Djava.io.tmpdir=${{ runner.temp }}"
run: |
java -Xmx500m -jar rascal/rascal.jar Main \
--libs "${{ inputs.dependencies_on_lib_path }}" \
--memory 14G \
--rascalVersion "|cwd:///rascal/rascal.jar|" \
--repoFolder "|cwd:///repos|" \
--full false \
--clean \
--tests rascal
- uses: actions/upload-artifact@v4
name: Store rascal tpls
with:
name: rascal-tpls
path: repos
retention-days: 1
if-no-files-found: error
other-projects:
runs-on: buildjet-4vcpu-ubuntu-2204
strategy:
matrix:
target:
- "'flybytes' 'salix-core' 'salix-contrib' 'drambiguity' 'rascal-lsp' 'rascal-git' 'php-analysis' 'typepal'"
- "'rascal-all' 'rascal-lsp-all'"
fail-fast: false
needs: [rascal, prepare-deps]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
- uses: actions/download-artifact@v4
with:
name: deps
- uses: actions/download-artifact@v4
with:
name: rascal-tpls
path: repos
- run: tree repos/
- name: Typecheck rascal-libs (deps on libs=${{ inputs.dependencies_on_lib_path }})
env:
JAVA_TOOL_OPTIONS: "-Djava.io.tmpdir=${{ runner.temp }}"
run: |
java -Xmx1G -jar rascal/rascal.jar Main \
--libs "${{ inputs.dependencies_on_lib_path }}" \
--memory 13G \
--rascalVersion "|cwd:///rascal/rascal.jar|" \
--repoFolder "|cwd:///repos|" \
--full false \
--clean \
--tests ${{ matrix.target }}