Skip to content

Experimenting with some low hanging fruit in the code that parses and imports modules for the sake of DSL loading time in VScode #1074

Experimenting with some low hanging fruit in the code that parses and imports modules for the sake of DSL loading time in VScode

Experimenting with some low hanging fruit in the code that parses and imports modules for the sake of DSL loading time in VScode #1074

Workflow file for this run

name: Build and Deploy
on:
push:
branches:
- main
tags:
- 'v[0-9]+.*'
pull_request:
branches:
- main
env:
MAVEN_OPTS: "-Xmx4G -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
jobs:
test-linux:
if: ${{ !(github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, '[maven-release-plugin]')) }}
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'temurin'
cache: 'maven'
- name: Run Tests
run: mvn -B -Drascal.compile.skip -Drascal.tutor.skip -Drascal.test.memory=14 test
- uses: codecov/codecov-action@v3
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
with:
token: e8b4481a-d178-4148-a4ff-502906390512
- name: Publish Test Report on github action
if: ${{ always() && github.event_name != 'pull_request' }} # to bad this doesn't work nicely with external pull requests
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
uses: scacap/action-surefire-report@v1
with:
check_name: "Test Report - ${{ runner.os }}"
- name: Report Failure
if: failure()
uses: act10ns/slack@v1
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.RASCAL_SLACK_WEBHOOK }}
builds:
if: ${{ !(github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, '[maven-release-plugin]')) }}
needs: [test-linux]
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: browser-actions/setup-chrome@latest
with:
chrome-version: 1047731 # v107
- run: which chrome
- uses: nanasess/setup-chromedriver@v1
with:
chromedriver-version: '107.0.5304.62'
- run: which chromedriver
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'temurin'
cache: 'maven'
- name: Compile & Bootstrap
run: mvn -B compile -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -Dwebdriver.chrome.browser=`which chrome`
env:
MAVEN_OPTS: "-Xmx14G -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
- name: Test if release # just to be extra sure for a release
if: startsWith(github.ref, 'refs/tags/v')
run: mvn -Drascal.test.memory=10 -Drascal.compile.skip -Drascal.tutor.skip test
- name: Attach artifact
id: build-artifact
uses: SWAT-engineering/maven-full-artifacts-action@v1
with:
maven-options: |
-Drascal.compile.skip
-Drascal.tutor.skip
-DskipTests
- name: Making sure test have succeeded in the parallel jobs
if: startsWith(github.ref, 'refs/tags/')
uses: yogeshlonkar/wait-for-jobs@v0
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
jobs: |
tests (macos-latest)
tests (windows-latest)
tests (buildjet-4vcpu-ubuntu-2204-arm)
ttl: 15
- name: Prepare Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
files: ${{ steps.build-artifact.outputs.artifact-root-dir}}/**/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy
if: startsWith(github.ref, 'refs/tags/v')
uses: usethesource/releases-maven-action@v1
with:
maven-username: ${{ secrets.RELEASE_MAVEN_USERNAME }}
maven-password: ${{ secrets.RELEASE_MAVEN_PASSWORD }}
maven-local-port: ${{ secrets.RELEASE_MAVEN_LOCAL_PORT }}
ssh-hostname: ${{ secrets.RELEASE_SSH_SERVER }}
ssh-known-host: ${{ secrets.RELEASE_SSH_KNOWN_HOSTS }}
ssh-username: ${{ secrets.RELEASE_SSH_USERNAME }}
ssh-private-key: ${{ secrets.RELEASE_SSH_PRIVATE_KEY }}
- name: Report Failure
if: failure()
uses: act10ns/slack@v1
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.RASCAL_SLACK_WEBHOOK }}
tests:
if: ${{ !(github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, '[maven-release-plugin]')) }}
needs: [test-linux]
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [windows-latest, macos-latest, buildjet-4vcpu-ubuntu-2204-arm]
env:
MAVEN_OPTS: "-Xmx1G -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'temurin'
cache: 'maven'
- name: Run Tests
# single quotes to help windows deal with argument splitting
run: mvn -B '-Drascal.compile.skip' '-Drascal.tutor.skip' '-Drascal.test.memory=3' test
- uses: codecov/codecov-action@v3
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
with:
token: e8b4481a-d178-4148-a4ff-502906390512
- name: Publish Test Report on github action
if: ${{ always() && github.event_name != 'pull_request' }} # to bad this doesn't work nicely with external pull requests
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
uses: scacap/action-surefire-report@v1
with:
check_name: "Test Report - ${{ runner.os }}"
- name: Report Failure
if: failure()
uses: act10ns/slack@v1
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.RASCAL_SLACK_WEBHOOK }}