chore(deps): bump protobuf.version from 3.25.5 to 4.29.1 #3791
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
name: Operator Test Workflow | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '.gitignore' | |
- 'LICENSE' | |
- 'README*' | |
- 'docs/**' | |
- '.github/workflows/**' | |
- 'operator/install/**' | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- '.gitignore' | |
- 'LICENSE' | |
- 'README*' | |
- 'docs/**' | |
- '.github/workflows/**' | |
- 'operator/install/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
operator-build-test: | |
name: Build and Test Operator | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'Apicurio' && !contains(github.event.*.labels.*.name, 'DO NOT MERGE') | |
steps: | |
- name: Configure env. variables 1 | |
run: | | |
echo "UUID=$(uuidgen)" >> $GITHUB_ENV | |
# We need tho push the bundle image because opm always pulls; the catalog image because OLM | |
# deploys it with `imagePullPolicy: Always`; and also the operator image itself for the same reason. | |
- name: Configure env. variables 2 | |
run: | | |
echo "IMAGE=ttl.sh/apicurio-registry-operator-$UUID:8h" >> $GITHUB_ENV | |
echo "BUNDLE_IMAGE=ttl.sh/apicurio-registry-operator-bundle-$UUID:8h" >> $GITHUB_ENV | |
echo "CATALOG_IMAGE=ttl.sh/apicurio-registry-operator-catalog-$UUID:8h" >> $GITHUB_ENV | |
echo "ADDITIONAL_CATALOG_IMAGE=" >> $GITHUB_ENV | |
- name: Checkout ${{ github.ref }} | |
uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: temurin | |
cache: maven | |
- name: Enable port-forwarding | |
run: | | |
sudo apt-get -y install socat | |
- name: Setup Minikube | |
uses: manusa/[email protected] | |
with: | |
minikube version: v1.33.1 | |
kubernetes version: v1.25.0 | |
github token: ${{ secrets.GITHUB_TOKEN }} | |
start args: '--force' | |
- name: Enable minikube features | |
run: | | |
minikube addons enable ingress | |
minikube addons enable olm | |
- name: Setup minikube tunnel | |
run: | | |
minikube tunnel & | |
- name: Build and run local tests on Minikube | |
working-directory: operator | |
run: | | |
make BUILD_OPTS="--no-transfer-progress" build | |
- name: Build temporary operator image | |
working-directory: operator | |
run: | | |
make image-build image-push | |
- name: Build temporary operator bundle | |
working-directory: operator | |
run: | | |
make bundle | |
- name: Build temporary operator catalog | |
working-directory: operator | |
run: | | |
make catalog | |
- name: Run remote and OLM tests on Minikube | |
working-directory: operator | |
run: | | |
make BUILD_OPTS="--no-transfer-progress" remote-tests-all | |
- name: Update install file | |
working-directory: operator | |
run: | | |
# We need to remove unset the variables to generate a clean install file. | |
# See https://stackoverflow.com/questions/70137245/how-to-remove-an-environment-variable-on-github-actions | |
unset IMAGE | |
unset BUNDLE_IMAGE | |
unset CATALOG_IMAGE | |
make IMAGE_TAG=latest-snapshot INSTALL_FILE=install/install.yaml dist-install-file | |
- name: Check install file | |
run: | | |
git add operator/install/install.yaml || true | |
if ! git diff --staged --exit-code; then | |
echo 'Install file needs to be updated. Please run "cd operator; make SKIP_TESTS=true build IMAGE_TAG=latest-snapshot INSTALL_FILE=install/install.yaml dist-install-file" and commit the result.'; | |
exit 1; | |
else | |
echo "No changes to the install file."; | |
fi | |
operator-publish: | |
name: Publish Operator | |
runs-on: ubuntu-latest | |
needs: operator-build-test | |
if: github.event_name == 'push' | |
steps: | |
# Do not publish (version)-snapshot tag, instead use `latest-snapshot`. | |
- name: Configure env. variables | |
run: | | |
echo "IMAGE_TAG=latest-snapshot" >> $GITHUB_ENV | |
echo "BUNDLE_IMAGE_TAG=latest-snapshot" >> $GITHUB_ENV | |
- name: Checkout ${{ github.ref }} | |
uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: temurin | |
cache: maven | |
- name: Build | |
working-directory: operator | |
run: | | |
make BUILD_OPTS="--no-transfer-progress" SKIP_TESTS=true build | |
- name: Login to quay.io registry | |
run: | | |
docker login -u "${{ secrets.QUAY_USERNAME }}" -p "${{ secrets.QUAY_PASSWORD }}" quay.io | |
- name: Build and publish operator image # TODO: Also push to DockerHub Registry | |
working-directory: operator | |
run: | | |
make image-build image-push | |
- name: Build and publish operator bundle | |
working-directory: operator | |
run: | | |
make bundle |