Skip to content

Route using map rather than fold to prevent state from parameters affecting the outer state #14405

Route using map rather than fold to prevent state from parameters affecting the outer state

Route using map rather than fold to prevent state from parameters affecting the outer state #14405

Workflow file for this run

# Copyright 2022 Goldman Sachs
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Build CI
env:
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
MAVEN_OPTS: "-Xmx6g"
on: [push, pull_request]
# Cancel running jobs from previous pipelines of the same workflow on PR to save resource when commits are pushed quickly
# NOTE: we don't want this behavior on default branch
# See https://stackoverflow.com/a/68422069
concurrency:
group: ${{ github.ref == 'refs/heads/master' && format('ci-default-branch-{0}-{1}', github.sha, github.workflow) || format('ci-pr-{0}-{1}', github.ref, github.workflow) }}
cancel-in-progress: true
jobs:
build:
name: Build
# NOTE: Only run this when not in fork as those likely do not have access to larger runners and will fail on normal runner due to resource limitation
# Also, skip this build for release commits
if: "!contains(github.event.head_commit.message, '[maven-release-plugin]') && github.repository == 'finos/legend-engine'"
# NOTE: larger runner is required to run this build
runs-on: ubuntu-latest-4-cores
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Cache Maven dependencies
uses: actions/cache@v3
env:
cache-name: cache-mvn-deps
with:
path: ~/.m2/repository
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: 11
server-id: ossrh
server-username: CI_DEPLOY_USERNAME
server-password: CI_DEPLOY_PASSWORD
- name: Check Java version
run: java -version
- name: Configure git
run: |
git config --global committer.email "[email protected]"
git config --global committer.name "FINOS Admin"
git config --global author.email "${GITHUB_ACTOR}@users.noreply.github.com"
git config --global author.name "${GITHUB_ACTOR}"
- name: Download deps and plugins
run: mvn de.qaware.maven:go-offline-maven-plugin:resolve-dependencies
- name: Collect Workflow Telemetry
uses: runforesight/workflow-telemetry-action@v1
with:
theme: dark
- name: Build (PR)
if: github.ref != 'refs/heads/master'
run: |
mvn -B -e -DskipTests=true install
- name: Build (with Maven Deploy + Docker Snapshot)
if: github.ref == 'refs/heads/master'
env:
DOCKER_USERNAME: finos
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
# NOTE: here we publish snapshot to a staging Maven registry
# some registry like Maven Central requires javadoc, but for now we
# don't need to, if we do, call javadoc:jar goal instead of javadoc:javadoc
# as the latter binds to generate-sources which runs before compile phase
# and can cause problem with some code generators
# See https://github.com/finos/legend-engine/pull/924
run: |
mvn -B -e -DskipTests=true deploy -P docker-snapshot
- name: Test
run: |
mvn -B -e surefire:test -DargLine="-XX:MaxRAMPercentage=70.0" -Dsurefire.reports.directory=${GITHUB_WORKSPACE}/surefire-reports-aggregate
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v3
with:
name: test-results
path: ${{ github.workspace }}/surefire-reports-aggregate/*.xml
- name: Upload CI Event
if: always()
uses: actions/upload-artifact@v3
with:
name: event-file
path: ${{ github.event_path }}