Skip to content

Commit

Permalink
Add github workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
yjhawar committed Apr 11, 2023
1 parent 28bcdf6 commit db19820
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 2 deletions.
108 changes: 108 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Build e2e tests

on:
push:
branches: [ e2e ]
pull_request:
branches: [ e2e ]
types: [ opened, synchronize, reopened, labeled ]
workflow_dispatch:

jobs:
build:
runs-on: k8s-runner-e2e
# We allow builds:
# 1) When triggered manually
# 2) When it's a merge into a branch
# 3) For PRs that are labeled as build and
# - It's a code change
# - A build label was just added
# A bit complex, but prevents builds when other labels are manipulated
if: >
github.event_name == 'workflow_dispatch'
|| github.event_name == 'push'
|| (contains(github.event.pull_request.labels.*.name, 'build')
&& (github.event.action != 'labeled' || github.event.label.name == 'build')
)
strategy:
fail-fast: false

steps:
# Pinned 1.0.0 version
- uses: actions/checkout@v3
with:
path: plugin
submodules: 'recursive'
ref: ${{ github.event.workflow_run.head_sha }}

- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
if: github.event_name != 'workflow_dispatch' && github.event_name != 'push'
id: filter
with:
working-directory: plugin
filters: |
e2e-test:
- '**/e2e-test/**'
- name: Checkout e2e test repo
uses: actions/checkout@v3
with:
repository: cdapio/cdap-e2e-tests
path: e2e

- name: Cache
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ github.workflow }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-${{ github.workflow }}
- name: Get Secrets from GCP Secret Manager
id: secrets
uses: 'google-github-actions/get-secretmanager-secrets@v0'
with:
secrets: |-
ORACLE_HOST:cdapio-github-builds/ORACLE_HOST
ORACLE_USERNAME:cdapio-github-builds/ORACLE_USERNAME
ORACLE_PASSWORD:cdapio-github-builds/ORACLE_PASSWORD
ORACLE_PORT:cdapio-github-builds/ORACLE_PORT
- name: Run required e2e tests
if: github.event_name != 'workflow_dispatch' && github.event_name != 'push' && steps.filter.outputs.e2e-test == 'false'
run: python3 e2e/src/main/scripts/run_e2e_test.py --testRunner TestRunnerRequired.java
env:
ORACLE_HOST: ${{ steps.secrets.outputs.ORACLE_HOST }}
ORACLE_USERNAME: ${{ steps.secrets.outputs.ORACLE_USERNAME }}
ORACLE_PASSWORD: ${{ steps.secrets.outputs.ORACLE_PASSWORD }}
ORACLE_PORT: ${{ steps.secrets.outputs.ORACLE_PORT }}


- name: Run all e2e tests
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' || steps.filter.outputs.e2e-test == 'true'
run: python3 e2e/src/main/scripts/run_e2e_test.py --testRunner **/**/TestRunner.java
env:
ORACLE_HOST: ${{ steps.secrets.outputs.ORACLE_HOST }}
ORACLE_USERNAME: ${{ steps.secrets.outputs.ORACLE_USERNAME }}
ORACLE_PASSWORD: ${{ steps.secrets.outputs.ORACLE_PASSWORD }}
ORACLE_PORT: ${{ steps.secrets.outputs.ORACLE_PORT }}


- name: Upload report
uses: actions/upload-artifact@v3
if: always()
with:
name: Cucumber report
path: ./**/target/cucumber-reports

- name: Upload debug files
uses: actions/upload-artifact@v3
if: always()
with:
name: Debug files
path: ./**/target/e2e-debug

- name: Upload files to GCS
uses: google-github-actions/upload-cloud-storage@v0
if: always()
with:
path: ./plugin
destination: e2e-tests-cucumber-reports/${{ github.event.repository.name }}/${{ github.ref }}
glob: '**/target/cucumber-reports/**'
4 changes: 2 additions & 2 deletions src/e2e-test/java/io.cdap.plugin/tests/TestRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/e2e-test/features"},
glue = {"stepsdesign", "io.cdap.plugin.common.stepsdesign", "io.cdap.plugin.oracle.stepsdesign"},
tags = {"@Oracle"},
glue = {"stepsdesign", "io.cdap.plugin.stepsdesign"},
tags = {"@Oracle"}, monochrome = true,
plugin = {"pretty", "html:target/cucumber-html-report/oracle",
"json:target/cucumber-reports/cucumber-oracle.json",
"junit:target/cucumber-reports/cucumber-oracle.xml"}
Expand Down

0 comments on commit db19820

Please sign in to comment.