Operator CI #784
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |