Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Onboard prod jenkins docker image to github actions #809

Merged
merged 2 commits into from
Nov 1, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 68 additions & 10 deletions .github/workflows/notifications-test-and-build-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,73 @@ name: Test and Build Notifications
on: [push, pull_request]

jobs:
build:
Get-CI-Image-Tag:
uses: opensearch-project/opensearch-build/.github/workflows/get-ci-image-tag.yml@main
with:
product: opensearch

build-linux:
needs: Get-CI-Image-Tag
strategy:
# This setting says that all jobs should finish, even if one fails
fail-fast: false
matrix:
java: [11, 17]

# Job name
name: Build Notifications with JDK ${{ matrix.java }} on linux
runs-on: ubuntu-latest
container:
# using the same image which is used by opensearch-build team to build the OpenSearch Distribution
# this image tag is subject to change as more dependencies and updates will arrive over time
image: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-version-linux }}
# need to switch to root so that github actions can install runner binary on container without permission issues.
options: --user root

steps:
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v2
with:
distribution: temurin # Temurin is a distribution of adoptium
java-version: ${{ matrix.java }}

# notifications
- name: Checkout Notifications
uses: actions/checkout@v2

- name: Build with Gradle
run: |
chown -R 1000:1000 `pwd`
cd notifications
su `id -un 1000` -c "./gradlew build"

- name: Upload coverage
uses: codecov/codecov-action@v1
with:
flags: opensearch-notifications
directory: notifications/
token: ${{ secrets.CODECOV_TOKEN }}

- name: Create Artifact Path
run: |
mkdir -p notifications-build/{notifications,notifications-core}
cp -r ./notifications/notifications/build/distributions/*.zip notifications-build/notifications/
cp -r ./notifications/core/build/distributions/*.zip notifications-build/notifications-core/
shell: bash

- name: Upload Artifacts for notifications plugin
uses: actions/upload-artifact@v1
with:
name: notifications-plugin-${{ matrix.os }}
path: notifications-build/notifications

- name: Upload Artifacts for notifications-core plugin
uses: actions/upload-artifact@v1
with:
name: notifications-core-plugin-${{ matrix.os }}
path: notifications-build/notifications-core

build-windows-macos:
env:
BUILD_ARGS: ${{ matrix.os_build_args }}
WORKING_DIR: ${{ matrix.working_directory }}.
Expand All @@ -17,7 +83,7 @@ jobs:
fail-fast: false
matrix:
java: [11, 17]
os: [ ubuntu-latest, windows-latest, macos-latest ]
os: [ windows-latest, macos-latest ]
include:
- os: windows-latest
os_build_args: -x integTest -x jacocoTestReport
Expand Down Expand Up @@ -55,14 +121,6 @@ jobs:
env:
_JAVA_OPTIONS: ${{ matrix.os_java_options }}

- name: Upload coverage
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: codecov/codecov-action@v1
with:
flags: opensearch-notifications
directory: notifications/
token: ${{ secrets.CODECOV_TOKEN }}

- name: Create Artifact Path
run: |
mkdir -p notifications-build/{notifications,notifications-core}
Expand Down
Loading