Skip to content

Operator CI

Operator CI #783

Workflow file for this run

# Copyright 2019, 2024, Oracle Corporation and/or its affiliates. All rights reserved.
# Licensed under the Universal Permissive License v 1.0 as shown at
# http://oss.oracle.com/licenses/upl.
# ---------------------------------------------------------------------------
# Coherence Operator GitHub Actions CI build.
# ---------------------------------------------------------------------------
name: Operator CI
on:
workflow_dispatch:
schedule:
- cron: '0 */2 * * *'
push:
branches-ignore:
- gh-pages
- 1.0.0
- 2.x
- 3.x
pull_request:
types:
- opened
- synchronize
- committed
branches-ignore:
- gh-pages
- 1.0.0
- 2.x
- 3.x
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
build:
runs-on: ubuntu-latest
# Checkout the source, we need a depth of zero to fetch all of the history otherwise
# the copyright check cannot work out the date of the files from Git.
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
# This step will free up disc space on the runner by removing
# lots of things that we do not need.
- name: disc
shell: bash
run: |
echo "Listing 100 largest packages"
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 100
df -h
echo "Removing large packages"
sudo apt-get remove -y '^dotnet-.*' || true
sudo apt-get remove -y '^llvm-.*' || true
sudo apt-get remove -y 'monodoc-http' || true
sudo apt-get remove -y 'php.*' || true
sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel || true
sudo apt-get autoremove -y || true
sudo apt-get clean
df -h
echo "Removing large directories"
rm -rf /usr/share/dotnet/
sudo rm -rf /usr/local/lib/android
df -h
- name: Set up JDK
uses: oracle-actions/setup-java@v1
with:
website: oracle.com
release: 21
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
- name: Cache Go Modules
uses: actions/cache@v4
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-mods-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-mods-
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Cache Tools
uses: actions/cache@v4
with:
path: build/tools
key: ${{ runner.os }}-build-tools-${{ hashFiles('**/Makefile') }}
restore-keys: ${{ runner.os }}-build-tools
- name: Edit DNS Resolve
shell: bash
run: |
sudo chown -R runner:runner /run/systemd/resolve/stub-resolv.conf
sudo echo nameserver 8.8.8.8 > /run/systemd/resolve/stub-resolv.conf
# - name: Code Review
# shell: bash
# run: |
# make code-review
- name: Start KinD Cluster
# Start a KinD K8s cluster with single worker node
shell: bash
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
make kind
kubectl version
kubectl get nodes
docker pull gcr.io/distroless/java
docker pull gcr.io/distroless/java11-debian11
docker pull gcr.io/distroless/java17-debian11
- name: Build
shell: bash
run: make all
- name: Load Images to KinD
# Load the images just built to the KinD cluster
shell: bash
run: |
make kind-load
- name: IDRS Remote Tests
shell: bash
run: make idrs-test
# - name: Unit Tests
# shell: bash
# run: make test-all
#
# - name: E2E Local Tests
# shell: bash
# run: make e2e-local-test
#
# - name: E2E Remote Tests
# shell: bash
# run: make e2e-test
#
# - name: Helm Chart Tests
# shell: bash
# run: |
# make e2e-helm-test
#
# - name: Upload Manifests
# uses: actions/upload-artifact@v1
# if: success()
# with:
# name: coherence-operator-manifests.tar.gz
# path: build/_output/coherence-operator-manifests.tar.gz
#
# - name: Upload Yaml
# uses: actions/upload-artifact@v1
# if: success()
# with:
# name: coherence-operator.yaml
# path: build/_output/coherence-operator.yaml
#
# - name: Upload CRD
# uses: actions/upload-artifact@v1
# if: success()
# with:
# name: coherence.oracle.com_coherence.yaml
# path: build/_output/manifests/crd/coherence.oracle.com_coherence.yaml
- uses: actions/upload-artifact@v1
if: failure()
with:
name: test-output
path: build/_output/test-logs
#
# - name: Deploy Snapshots & Docs
# if: ${{ github.ref == 'refs/heads/main' && success() }}
# env:
# MAVEN_SONATYPE_USERNAME: ${{ secrets.MAVEN_SONATYPE_USERNAME }}
# MAVEN_SONATYPE_TOKEN: ${{ secrets.MAVEN_SONATYPE_TOKEN }}
# shell: bash
# run: |
# git config --local user.name "Github Action"
# git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com"
# export NO_DAEMON=false
# make push-snapshot-docs || true