diff --git a/.github/workflows/lara-js.yml b/.github/workflows/lara-js.yml new file mode 100644 index 0000000..c925ab5 --- /dev/null +++ b/.github/workflows/lara-js.yml @@ -0,0 +1,69 @@ +# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle + +name: Java CI - Lara-JS + +on: + push: + branches: [ "staging" ] + pull_request: + branches: [ "staging" ] + + # Daily at midnight + schedule: + - cron: '0 0 * * *' + +permissions: + checks: write + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + # Because of scheduled runs, by default run on default branch + with: + ref: staging + path: workspace/alpakka + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Check out specs-java-libs repo + uses: actions/checkout@v4 + with: + repository: specs-feup/specs-java-libs + path: workspace/specs-java-libs + + - name: Check out lara-framework repo + uses: actions/checkout@v4 + with: + repository: specs-feup/lara-framework + ref: feature/lara-js + path: workspace/lara-framework + + # Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. + # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md + - name: Setup Gradle + uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 + + # Setting up gradle multi-project would be helpful + - name: Build and Test AlpakkaParser + working-directory: workspace/alpakka/AlpakkaParser + run: ./gradlew build test + + - name: Build and Test AlpakkaWeaver + working-directory: workspace/alpakka/AlpakkaWeaver + run: ./gradlew build test + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v4 + if: always() + with: + report_paths: 'workspace/alpakka/**/build/test-results/test/TEST-*.xml' + summary: true