Skip to content

Commit

Permalink
[issue-1343] - Improve GitHub workflow for CI checks
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiobrz committed Jan 9, 2025
1 parent c488cb3 commit 4bdcd25
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 121 deletions.
77 changes: 0 additions & 77 deletions .circleci/config.yml

This file was deleted.

133 changes: 89 additions & 44 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,53 @@ on:
branches:
- main
paths-ignore:
- 'doc/**'
- '.circleci/**'
env:
DOCKER_HOST: 'unix:///var/run/docker.sock'
- 'docs/**'

jobs:
build:
runs-on: ubuntu-20.04
docker-it:
runs-on: ubuntu-latest
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
java: ['11']
steps:
- name: Checkout arquillian-cube
uses: actions/checkout@v4
- name: Cache .m2 registry
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: docker-it-cache-e2e-${{ github.sha }}-${{ github.run_id }}
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Maven pre-fetch dependencies ${{ matrix.java }}
run: |
./mvnw clean install -q -U -DskipTests
- name: Build and run integration tests for Docker target (${{ matrix.java }})
run: |
./mvnw verify -B -Dfailsafe.groups=org.arquillian.cube.docker.impl.requirement.RequiresDocker -Dcontainerless.skip.tests=true
- uses: actions/upload-artifact@v4
with:
name: docker-it-surefire-reports-jdk-${{ matrix.java }}
path: |
'${{ github.workspace }}/**/surefire-reports/*.*'
'${{ github.workspace }}/**/*.log'
k8s-it:
runs-on: ubuntu-latest
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
java: ['11']
target: ['docker', 'kubernetes', 'openshift']
env:
# failsafe.groups configuration depends on the env setup.
FAILSAFE_GROUPS: ''
steps:
- name: Checkout arquillian-cube
uses: actions/checkout@v4
- name: Setup Minikube
if: ${{ matrix.target == 'kubernetes' }}
uses: manusa/[email protected]
with:
driver: docker
Expand All @@ -39,35 +64,69 @@ jobs:
github token: ${{ secrets.GITHUB_TOKEN }}
start args: "--memory='4gb' --cpus='2'"
- name: Enable minikube registry
if: ${{ matrix.target == 'kubernetes' }}
run: |
minikube addons enable registry
kubectl port-forward --namespace kube-system service/registry 5000:80 &
- name: Cache .m2 registry
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: k8s-it-cache-e2e-${{ github.sha }}-${{ github.run_id }}
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Maven pre-fetch dependencies ${{ matrix.java }}
run: |
./mvnw clean install -q -U -DskipTests
- name: Build and run integration tests for Kubernetes target (${{ matrix.java }})
run: |
./mvnw verify -B -Dfailsafe.groups=org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes -Dcontainerless.skip.tests=true
- uses: actions/upload-artifact@v4
with:
name: k8s-it-surefire-reports-jdk-${{ matrix.java }}
path: |
'${{ github.workspace }}/**/surefire-reports/*.*'
'${{ github.workspace }}/**/*.log'
- name: Stop minikube
run: |
minikube stop
openshift-it:
runs-on: ubuntu-20.04
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
java: ['11']
steps:
- name: Checkout arquillian-cube
uses: actions/checkout@v4
- name: Setup OpenShift
if: ${{ matrix.target == 'openshift' }}
uses: manusa/[email protected]
with:
oc version: 'v3.10.0'
github token: ${{ secrets.GITHUB_TOKEN }}
# - name: Setup OLM on OpenShift v3.z
# if: ${{ matrix.target == 'openshift' }}
# run: |
# set -x
# # operator-sdk must be installed manually on OpenShift v3
# oc version
# oc create -f https://github.com/operator-framework/operator-lifecycle-manager/tree/master/deploy/upstream/manifests/0.6.0/
# # OR...
# export ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac)
# export OS=$(uname | awk '{print tolower($0)}')
# export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.37.0
# curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH}
# chmod +x operator-sdk_${OS}_${ARCH} && sudo mv operator-sdk_${OS}_${ARCH} /usr/local/bin/operator-sdk
# operator-sdk olm install
# TODO - there are issues when installing OLM on OpenShift v3, and we're aiming at having CI running on OpenShift 4, actually...
# - name: Setup OLM on OpenShift v3.z
# run: |
# set -x
# # operator-sdk must be installed manually on OpenShift v3
# oc version
# oc create -f https://github.com/operator-framework/operator-lifecycle-manager/tree/master/deploy/upstream/manifests/0.6.0/
# # OR...
# export ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac)
# export OS=$(uname | awk '{print tolower($0)}')
# export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.37.0
# curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH}
# chmod +x operator-sdk_${OS}_${ARCH} && sudo mv operator-sdk_${OS}_${ARCH} /usr/local/bin/operator-sdk
# operator-sdk olm install
- name: Cache .m2 registry
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: cache-e2e-${{ github.sha }}-${{ github.run_id }}
key: openshift-it-cache-e2e-${{ github.sha }}-${{ github.run_id }}
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
Expand All @@ -76,26 +135,12 @@ jobs:
- name: Maven pre-fetch dependencies ${{ matrix.java }}
run: |
./mvnw clean install -q -U -DskipTests
- name: Build and run integration tests for Docker target (${{ matrix.java }})
if: ${{ matrix.target == 'docker' }}
run: |
./mvnw verify -Dfailsafe.groups=org.arquillian.cube.docker.impl.requirement.RequiresDocker -Dcontainerless.skip.tests=true
- name: Build and run integration tests for Kubernetes target (${{ matrix.java }})
if: ${{ matrix.target == 'kubernetes' }}
run: |
./mvnw verify -Dfailsafe.groups=org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes -Dcontainerless.skip.tests=true
- name: Build and run integration tests for OpenShift target (${{ matrix.java }})
if: ${{ matrix.target == 'openshift' }}
run: |
./mvnw verify -pl openshift -amd -Dfailsafe.groups=org.arquillian.cube.openshift.impl.requirement.RequiresOpenshift -Dfailsafe.excludedGroups=org.arquillian.cube.openshift.impl.requirement.RequiresOpenshift4 -Dcontainerless.skip.tests=true
./mvnw verify -B -Dfailsafe.groups=org.arquillian.cube.openshift.impl.requirement.RequiresOpenshift -Dfailsafe.excludedGroups=org.arquillian.cube.openshift.impl.requirement.RequiresOpenshift4 -Dcontainerless.skip.tests=true
- uses: actions/upload-artifact@v4
if: failure()
with:
name: surefire-reports-jdk-${{ matrix.java }}
name: openshift-it-surefire-reports-jdk-${{ matrix.java }}
path: |
'${{ github.workspace }}/**/surefire-reports/*.*'
'${{ github.workspace }}/**/*.log'
- name: Stop minikube
if: ${{ matrix.target == 'kubernetes' }}
run: |
minikube stop

0 comments on commit 4bdcd25

Please sign in to comment.