syntax role modifiers #1083
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |