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 14, 2024
1 parent 60b087b commit ca3ddc1
Show file tree
Hide file tree
Showing 4 changed files with 176 additions and 37 deletions.
74 changes: 37 additions & 37 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
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 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
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:
# fail if there are no test results
require_tests: true

# Workaround for check that is additionally created being associated
# to the wrong workflow/run. Instead no additional check is created.
# See https://github.com/mikepenz/action-junit-report/issues/40
annotate_only: true
detailed_summary: true
report_paths: 'build/target/testReports/*.xml'
77 changes: 77 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
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 Maven
uses: s4u/setup-maven-action@v1.5.1
with:
java-version: 17
java-distribution: temurin
maven-version: 3.8.6

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}

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

- name: Install AWS CLI
uses: unfor19/install-aws-cli-action@v1
with:
version: 1

- name: Update site
env:
AWS_ACCESS_KEY_ID: ${{ secrets.BUILD_ARCHIVE_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.BUILD_ARCHIVE_SECRET_KEY }}
run: ./upload-site.sh
working-directory: ./build

- name: Run Maven with custom options
run: mvn -f pom.xml clean verify -Dmaven.test.failure.ignore=true -Dmaven.wagon.httpconnectionManager.ttlSeconds=60

- 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: 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:
# fail if there are no test results
require_tests: true

# Workaround for check that is additionally created being associated
# to the wrong workflow/run. Instead no additional check is created.
# See https://github.com/mikepenz/action-junit-report/issues/40
annotate_only: true
detailed_summary: true
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 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
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:
# fail if there are no test results
require_tests: true

# Workaround for check that is additionally created being associated
# to the wrong workflow/run. Instead no additional check is created.
# See https://github.com/mikepenz/action-junit-report/issues/40
annotate_only: true
detailed_summary: true
report_paths: 'build/target/testReports/*.xml'
3 changes: 3 additions & 0 deletions hale-docker.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
global {
dockerHost="unix:///var/run/docker.sock"
}

0 comments on commit ca3ddc1

Please sign in to comment.