Skip to content

trigger_after_upstream_deploy #933

trigger_after_upstream_deploy

trigger_after_upstream_deploy #933

Workflow file for this run

# (c) https://github.com/MontiCore/monticore
name: Gradle
concurrency: # run this test workflow only once per branch
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push: # run this test pipeline on every push
pull_request: # and pull request
repository_dispatch: # and on request of upstream projects
types: [ trigger_after_upstream_deploy ]
env:
GRADLE_VERSION: 8.14 # Gradle version used
GRADLE_CLI_OPTS: "-Pci --build-cache " # CLI options passed to Gradle
permissions:
contents: read # This action may run somewhat unsafe code
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout project sources
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Gradle build
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: ${{env.GRADLE_VERSION}}
arguments: build ${{env.GRADLE_CLI_OPTS}}
-PgithubUser=${{env.GITHUB_ACTOR}}
-PgithubToken=${{secrets.GITHUB_TOKEN}}
parser-performance:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout project sources
uses: actions/checkout@v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: ${{env.GRADLE_VERSION}}
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Run parser test
run: gradle :language:test --tests "parser.OfficialParserTest.testParseAll" ${{env.GRADLE_CLI_OPTS}}
-PgithubUser=${{env.GITHUB_ACTOR}}
-PgithubToken=${{secrets.GITHUB_TOKEN}}
- name: Display test execution time
if: always()
run: |
if [ -f "language/target/test-results/test/TEST-parser.OfficialParserTest.xml" ]; then
TEST_TIME=$(grep -oP 'time="\K[^"]+' language/target/test-results/test/TEST-parser.OfficialParserTest.xml | head -1 || echo "N/A")
if [ "$TEST_TIME" != "N/A" ]; then
TOTAL_SECONDS=$(echo "$TEST_TIME" | awk '{printf "%.0f", $1}')
MINUTES=$((TOTAL_SECONDS / 60))
SECONDS=$((TOTAL_SECONDS % 60))
echo "=========================================="
echo "Parser Test Execution Time: ${MINUTES}m ${SECONDS}s"
echo "=========================================="
else
echo "Could not extract test time from report"
fi
else
echo "Test report not found at language/target/test-results/test/TEST-parser.OfficialParserTest.xml"
fi
deploy:
permissions:
packages: write
runs-on: ubuntu-latest
needs: build
if:
github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release')
steps:
- name: Checkout project sources
uses: actions/checkout@v4
- run: curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
- run: sudo apt-get install -y nodejs
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: ${{env.GRADLE_VERSION}}
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Gradle Publish
run: gradle build publish ${{env.GRADLE_CLI_OPTS}}
-PnexusPassword=${{ secrets.SE_NEXUS_PASSWORD }}
-PnexusUser=${{ secrets.SE_NEXUS_USER }}
-PgithubUser=${{env.GITHUB_ACTOR}}
-PgithubToken=${{secrets.GITHUB_TOKEN}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}