forked from stakater/IngressMonitorController
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix CI to build and push the image (#4)
* WIP add config option * Update controller-gen version Fixes the broken v0.9 of controller-gen because it causes a segfault when running `make install` * Update formatting for base CRDS * Working read secret * Fixed read secret * Use new secret function not client function * Revert random formatting changes * More stupid formatting fixes * Final formatting fixes I don't like formatting :( * Small fixes and docs update * Update example * Update CRDs * Add raw_post_data var to statuscake * Add user_agent var to statuscake * Update formatting for user_agent * Fix tabs in statuscake-monitor.go * Update base crds * Docs and example update * Update CRDs * Implement Equals function using TestTags It is mentioned in a comment in the code itself but because of the discrepency between the fields in the EndpointMonitor CR and the Statuscake API it is not immediately clear how to compare an old monitor with an updated monitor. The way I have elected to check this is to use the TestTags field to include some kind of identifier that should be updated on any change. So if the tags have changed then the monitor should be updated. * Test PUSH CI * Remove unnecessary CI * Fix username and registry link * Remove testing branch * Delete commented stuff
- Loading branch information
1 parent
70ce314
commit 7e597e6
Showing
1 changed file
with
3 additions
and
137 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,7 +19,7 @@ env: | |
KUSTOMIZE_VERSION: "4.5.7" | ||
KUBERNETES_VERSION: "1.23.5" | ||
KIND_VERSION: "v0.17.0" | ||
HELM_REGISTRY_URL: "https://stakater.github.io/stakater-charts" | ||
HELM_REGISTRY_URL: "" | ||
HELM_VERSION: v3.8.2 | ||
REGISTRY: ghcr.io | ||
|
||
|
@@ -100,7 +100,7 @@ jobs: | |
uses: docker/login-action@v3 | ||
with: | ||
registry: ${{env.REGISTRY}} | ||
username: stakater-user | ||
username: imc-user | ||
password: ${{secrets.GITHUB_TOKEN}} | ||
|
||
- name: Generate image repository path for ghcr registry | ||
|
@@ -117,144 +117,10 @@ jobs: | |
cache-to: type=inline | ||
cache-from: type=gha | ||
build-args: BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} | ||
platforms: linux/amd64,linux/arm,linux/arm64 | ||
platforms: linux/amd64 | ||
tags: | | ||
${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }} | ||
labels: | | ||
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | ||
org.opencontainers.image.created=${{ steps.prep.outputs.created }} | ||
org.opencontainers.image.revision=${{ github.sha }} | ||
- name: Login to Dockerhub Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ${{ secrets.STAKATER_DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.STAKATER_DOCKERHUB_PASSWORD }} | ||
|
||
- name: Generate image repository path for DockerHub registry | ||
run: | | ||
echo IMAGE_REPOSITORY=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV | ||
- name: Build and push image to DockerHub registry | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
file: ${{ env.DOCKER_FILE_PATH }} | ||
pull: true | ||
push: true | ||
build-args: BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} | ||
cache-from: type=gha | ||
cache-to: type=gha,mode=max | ||
platforms: linux/amd64,linux/arm,linux/arm64 | ||
tags: | | ||
${{ env.IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }} | ||
labels: | | ||
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | ||
org.opencontainers.image.created=${{ steps.prep.outputs.created }} | ||
org.opencontainers.image.revision=${{ github.sha }} | ||
############################## | ||
## Add steps to generate required artifacts for a release here(helm chart, operator manifest etc.) | ||
############################## | ||
|
||
# Generate tag for operator without "v" | ||
- name: Generate Operator Tag | ||
id: generate_operator_tag | ||
uses: anothrNick/[email protected] | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} | ||
WITH_V: false | ||
DEFAULT_BUMP: patch | ||
DRY_RUN: true | ||
|
||
# Install operator-sdk | ||
- name: Install operator-sdk | ||
uses: redhat-actions/openshift-tools-installer@v1 | ||
with: | ||
source: "github" | ||
operator-sdk: ${{ env.OPERATOR_SDK_VERSION }} | ||
|
||
# Install kustomize | ||
- name: Install kustomize | ||
uses: imranismail/setup-kustomize@v2 | ||
with: | ||
kustomize-version: ${{ env.KUSTOMIZE_VERSION }} | ||
|
||
- name: Generate Bundle | ||
env: | ||
VERSION: ${{ steps.generate_operator_tag.outputs.new_tag }} | ||
IMG: ${{ env.IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }} | ||
run: make bundle | ||
|
||
- name: Verify bundle | ||
run: operator-sdk bundle validate ./bundle --select-optional name=operatorhub | ||
|
||
- name: Build and push Bundle Image | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
file: ${{ env.BUNDLE_DOCKER_FILE_PATH }} | ||
pull: true | ||
push: true | ||
cache-to: type=inline | ||
tags: | | ||
${{ env.IMAGE_REPOSITORY }}-bundle:${{ steps.generate_tag.outputs.new_tag }} | ||
labels: | | ||
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | ||
org.opencontainers.image.created=${{ steps.prep.outputs.created }} | ||
org.opencontainers.image.revision=${{ github.sha }} | ||
# Update chart tag to the latest semver tag | ||
- name: Update Chart Version | ||
env: | ||
VERSION: ${{ steps.generate_operator_tag.outputs.new_tag }} | ||
run: make bump-chart | ||
|
||
- name: Update Chart CRDs | ||
run: make generate-crds | ||
|
||
# Publish helm chart | ||
- name: Publish Helm chart | ||
uses: stefanprodan/helm-gh-pages@master | ||
with: | ||
branch: master | ||
repository: stakater-charts | ||
target_dir: docs | ||
token: ${{ secrets.GHCR_TOKEN }} | ||
charts_dir: charts/ | ||
charts_url: ${{ env.HELM_REGISTRY_URL }} | ||
owner: stakater | ||
linting: on | ||
commit_username: stakater-user | ||
commit_email: [email protected] | ||
|
||
# Commit back changes | ||
- name: Commit files | ||
run: | | ||
git config --local user.email "[email protected]" | ||
git config --local user.name "stakater-user" | ||
git status | ||
git add . | ||
git commit -m "[skip-ci] Update artifacts" -a | ||
- name: Push changes | ||
uses: ad-m/github-push-action@master | ||
with: | ||
github_token: ${{ secrets.PUBLISH_TOKEN }} | ||
|
||
# Push Latest Tag | ||
- name: Push Latest Tag | ||
uses: anothrNick/[email protected] | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} | ||
WITH_V: true | ||
DEFAULT_BUMP: patch | ||
|
||
- name: Notify Slack | ||
uses: 8398a7/action-slack@v3 | ||
if: always() # Pick up events even if the job fails or is canceled. | ||
with: | ||
status: ${{ job.status }} | ||
fields: repo,author,action,eventName,ref,workflow | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} |