Skip to content

Commit

Permalink
build: migrate build to GitHub Actions
Browse files Browse the repository at this point in the history
Add pull request file, master and release branches files to be used by the GitHub actions to check the PRs.

ING-4164
  • Loading branch information
emanuelaepure10 committed Mar 5, 2024
1 parent 2493822 commit bfad1a1
Show file tree
Hide file tree
Showing 3 changed files with 144 additions and 37 deletions.
68 changes: 31 additions & 37 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -1,43 +1,37 @@
name: Check
name: Pull Request Workflow

# XXX disabled for now because we use Jenkins still, but at the time this was tested it was functional
# on:
# pull_request:
# branches: [ master ]
on:
pull_request:
branches:
- '*' # Trigger on all branches for pull requests

jobs:
check:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

# Note: Actually we don't need Maven CLI, only Java 17, but this may have additional benefits due to the Maven cache
- name: Setup Maven
uses: s4u/setup-maven-action@v1.5.1
with:
java-version: 17
java-distribution: temurin
maven-version: 3.8.6

- name: Clean
run: ./build.sh clean
working-directory: ./build

- name: Test (commitStage)
run: ./build.sh commitStage
# run: ./build.sh integrationStage
working-directory: ./build

# https://github.com/marketplace/actions/junit-report-action
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: always() # always run even if the previous step fails
with:
report_paths: 'build/target/testReports/*.xml'

# TODO allure report?
# build/target/allure-results

# TODO archive logs?
# build/target/testReports/*.out,build/target/testReports/*.err
- name: Checkout code
uses: actions/checkout@v4

- name: Setup JAVA
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '17'

- name: Setup Maven
uses: s4u/maven-settings-action@v3.0.0

- name: Clean
run: ./build.sh clean
working-directory: ./build

- name: Test
run: ./build.sh commitStage
working-directory: ./build

- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: always() # always run even if the previous step fails
with:
report_paths: 'build/target/testReports/*.xml'
54 changes: 54 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Master Branch Workflow

on:
push:
branches:
#- master # Trigger on pushes to the master branch
- build/ING-4164
workflow_dispatch: {}

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup JAVA
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '17'

- name: Setup Maven
uses: s4u/maven-settings-action@v3.0.0

- name: Clean
run: ./build.sh clean
working-directory: ./build

- name: Test
run: ./build.sh integrationStage
working-directory: ./build

- name: Product
run: ./build.sh product --arch x86_64 --os linux HALE
./build.sh product --arch x86_64 --os windows HALE
./build.sh product --arch x86_64 --os macosx HALE
./build.sh product --arch x86_64 --os linux --publish Infocenter
working-directory: ./build

- name: Update site
run: ./upload-site.sh
working-directory: ./build

- name: Deploy Artifacts
run: ./build.sh deployArtifacts
working-directory: ./build

- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: always() # always run even if the previous step fails
with:
report_paths: 'build/target/testReports/*.xml'
59 changes: 59 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Release Branch Workflow

on:
push:
branches:
- release/* # Trigger on pushes to the master branch
workflow_dispatch: {}

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup JAVA
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '17'

- name: Setup Maven
uses: s4u/maven-settings-action@v3.0.0

publish:
runs-on: ubuntu-latest
needs: build

steps:
- name: Clean
run: ./build.sh clean
working-directory: ./build

- name: Test
run: ./build.sh integrationStage
working-directory: ./build

- name: Product
run: ./build.sh product --arch x86_64 --os linux HALE
./build.sh product --arch x86_64 --os windows HALE
./build.sh product --arch x86_64 --os macosx HALE
./build.sh product --arch x86_64 --os linux --publish Infocenter
working-directory: ./build

- name: Update site
run: ./upload-site.sh
working-directory: ./build

- name: Deploy Artifacts
run: ./build.sh deployArtifacts
working-directory: ./build

- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: always() # always run even if the previous step fails
with:
report_paths: 'build/target/testReports/*.xml'

0 comments on commit bfad1a1

Please sign in to comment.