Skip to content

Commit

Permalink
fixes in CI build scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
mtulio committed Jul 13, 2024
1 parent 7c9de84 commit 4e3018a
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 248 deletions.
7 changes: 3 additions & 4 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,16 @@ jobs:
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}

- name: Push Container image
shell: bash
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
VERSION: ${{ steps.vars.outputs.tag }}
QUAY_USER: ${{ secrets.QUAY_USER }}
QUAY_PASS: ${{ secrets.QUAY_PASS }}
EXPIRE: never
run: |
podman login -u="${QUAY_USER}" -p="${QUAY_PASS}" quay.io
echo "> Build and publish container image:"
make build-arch-amd64 VERSION=${VERSION}
make build-arch-arm64 VERSION=${VERSION}
make push-manifests VERSION=${VERSION}
make images VERSION=${VERSION} PLATFORMS="${PLATFORMS}" COMMAND=push
# https://github.com/mikepenz/release-changelog-builder-action#configuration
- name: Build Changelog
Expand Down
27 changes: 14 additions & 13 deletions .github/workflows/release-devel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
#
build-amd64:
name: build container amd64
runs-on: macos-latest
runs-on: ubuntu-latest
needs: [linters]
env:
VERSION: "v0.0.0-devel-pr.${{ github.event.pull_request.number }}"
Expand All @@ -48,13 +48,15 @@ jobs:

- name: Build images AMD64
shell: bash
env:
PLATFORMS: linux/amd64
run: |
echo "> Build and publish container image:"
make build-arch-amd64 VERSION=${VERSION}
make images VERSION=${VERSION} PLATFORMS="${PLATFORMS}"
build-arm64:
name: build container arm64
runs-on: ubuntu-latest
runs-on: macos-latest
needs: [linters]
env:
VERSION: "v0.0.0-devel-pr.${{ github.event.pull_request.number }}"
Expand All @@ -71,16 +73,20 @@ jobs:

- name: Build images ARM64
shell: bash
env:
PLATFORMS: linux/arm64
run: |
brew install podman
echo "> Build and publish container image:"
make build-arch-arm64 VERSION=${VERSION}
make images VERSION=${VERSION} PLATFORMS="${PLATFORMS}"
#
# Releasing: triggered when a tag is created
#
release:
if: startsWith(github.ref, 'refs/head/main')
runs-on: ubuntu-latest
# if: startsWith(github.ref, 'refs/head/main')
name: release container(latest)
runs-on: macos-latest
needs:
- build-amd64
- build-arm64
Expand All @@ -91,17 +97,12 @@ jobs:
submodules: recursive

- name: Build and push container images
shell: bash
env:
QUAY_USER: ${{ secrets.QUAY_USER }}
QUAY_PASS: ${{ secrets.QUAY_PASS }}
EXPIRE: never
VERSION: latest
TOOLS_REPO: localhost/tools
PLUGIN_TESTS_REPO: localhost/plugin-openshift-tests
MGM_REPO: localhost/must-gather-monitoring
run: |
podman login -u="${QUAY_USER}" -p="${QUAY_PASS}" quay.io
echo "> Build and publish container image:"
make build-arch-amd64 VERSION=${VERSION}
make build-arch-arm64 VERSION=${VERSION}
make push-manifests VERSION=${VERSION}
make images VERSION=${VERSION} COMMAND=push
104 changes: 8 additions & 96 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
PREFIX ?= v0.0.0-devel
VERSION ?= $(PREFIX)-$(shell git rev-parse --short HEAD)

ARCH ?= linux-amd64
EXPIRE ?= 1w
PLATFORMS ?= linux/amd64,linux/arm64
EXPIRE ?= 2d
COMMAND ?= build
# To create production images: make target VERSION_PREFIX='' EXPIRE=never

Expand All @@ -18,121 +18,33 @@ format: shellcheck
shellcheck:
hack/shellcheck.sh


#> Build app

.PHONY: build
build:
EXPIRE=$(EXPIRE) VERSION=$(VERSION) \
./build.sh $(COMMAND) "$(WHAT)" $(ARCH)
./build.sh $(COMMAND) "$(WHAT)" "$(PLATFORMS)"

#>> tools

.PHONY: build-tools
build-tools: WHAT = tools
build-tools: build

.PHONY: build-tools-linux-amd64
build-tools-linux-amd64: ARCH = linux-amd64
build-tools-linux-amd64: build-tools

.PHONY: build-tools-linux-arm64
build-tools-linux-arm64: ARCH = linux-arm64
build-tools-linux-arm64: build-tools

#>> plugin-tests

.PHONY: build-plugin-tests
build-plugin-tests: WHAT = plugin-openshift-tests
build-plugin-tests: build

.PHONY: build-plugin-tests-linux-amd64
build-plugin-tests-linux-amd64: ARCH = linux-amd64
build-plugin-tests-linux-amd64: build-plugin-tests

.PHONY: build-plugin-tests-linux-arm64
build-plugin-tests-linux-arm64: ARCH = linux-arm64
build-plugin-tests-linux-arm64: build-plugin-tests

#>> must-gather-montioring

.PHONY: build-must-gather-monitoring
build-must-gather-monitoring: WHAT = must-gather-monitoring
build-must-gather-monitoring: build

.PHONY: build-must-gather-monitoring-linux-amd64
build-must-gather-monitoring-linux-amd64: ARCH = linux-amd64
build-must-gather-monitoring-linux-amd64: build-must-gather-monitoring

.PHONY: build-must-gather-monitoring-linux-arm64
build-must-gather-monitoring-linux-arm64: ARCH = linux-arm64
build-must-gather-monitoring-linux-arm64: build-must-gather-monitoring

#> Build all by arch

.PHONY: build-arch-amd64
build-arch-amd64: ARCH = linux-amd64
build-arch-amd64:
$(MAKE) build EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=tools
$(MAKE) build EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=plugin-openshift-tests
$(MAKE) build EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=must-gather-monitoring

.PHONY: build-push-arch-amd64
build-push-arch-amd64: COMMAND = push
build-push-arch-amd64: build-arch-amd64

.PHONY: build-arch-arm64
build-arch-arm64: ARCH = linux-arm64
build-arch-arm64:
$(MAKE) build EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=tools
$(MAKE) build EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=plugin-openshift-tests
$(MAKE) build EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=must-gather-monitoring

.PHONY: build-push-arch-arm64
build-push-arch-arm64: COMMAND = push
build-push-arch-arm64: build-arch-arm64

##> Production release only

.PHONY: prod-build-push-arch-amd64
prod-build-push-arch-amd64: COMMAND = push
prod-build-push-arch-amd64: EXPIRE = never
prod-build-push-arch-amd64: build-arch-amd64

.PHONY: prod-build-push-arch-arm64
prod-build-push-arch-arm64: COMMAND = push
prod-build-push-arch-arm64: EXPIRE = never
prod-build-push-arch-arm64: build-arch-arm64

## Manifests

.PHONY: build-manifest
build-manifest:
EXPIRE=$(EXPIRE) VERSION=$(VERSION) \
hack/build-manifest.sh $(COMMAND) $(WHAT)

.PHONY: build-manifests
build-manifests:
$(MAKE) build-manifest EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=tools
$(MAKE) build-manifest EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=plugin-openshift-tests
$(MAKE) build-manifest EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=must-gather-monitoring

.PHONY: push-manifests
push-manifests: COMMAND = push
push-manifests:
$(MAKE) build-manifest EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=tools
$(MAKE) build-manifest EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=plugin-openshift-tests
$(MAKE) build-manifest EXPIRE=$(EXPIRE) ARCH=$(ARCH) COMMAND=$(COMMAND) WHAT=must-gather-monitoring

##> Production release only

.PHONY: prod-build-push-manifests
prod-build-push-manifests: EXPIRE = never
prod-build-push-manifests: push-manifests

.PHONY: remove-manifests
remove-manifests:
podman manifest rm quay.io/opct/tools:$(TOOLS_VERSION) || true
podman manifest rm quay.io/opct/plugin-openshift-tests:$(PLUGIN_TESTS_VERSION) || true
podman manifest rm quay.io/opct/must-gather-monitoring:$(MGM_VERSION) || true

.PHONY: images
images:
$(MAKE) build-tools
$(MAKE) build-plugin-tests
$(MAKE) build-must-gather-monitoring
9 changes: 2 additions & 7 deletions build.env
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,11 @@ export CURRENT_VERSION_PLUGIN_TESTS="${VERSION}"
export CURRENT_VERSION_MGM="${VERSION}"

export JQ_VERSION=1.7
export YQ_VERSION=4.2.0
export SONOBUOY_VERSION=v0.56.12

export IMAGE_EXPIRE_TIME="${EXPIRE:-1w}"

declare -A BUILD_PLATFORMS=()
BUILD_PLATFORMS+=( ["linux-amd64"]="linux/amd64" )
BUILD_PLATFORMS+=( ["linux-arm64"]="linux/arm64" )
#BUILD_PLATFORMS+=( ["linux-ppc64le"]="linux/ppc64le" )
#BUILD_PLATFORMS+=( ["linux-s390x"]="linux/s390x" )

export TOOLS_VERSION=${TOOLS_VERSION:-$CURRENT_VERSION_TOOLS}
export TOOLS_REPO=${TOOLS_REPO:-quay.io/opct/tools}
export TOOLS_IMG=${TOOLS_REPO}:${TOOLS_VERSION}
Expand All @@ -26,4 +21,4 @@ export PLUGIN_TESTS_IMG=${PLUGIN_TESTS_REPO}:${PLUGIN_TESTS_VERSION}

export MGM_VERSION=${MGM_VERSION:-$CURRENT_VERSION_MGM}
export MGM_REPO=${MGM_REPO:-quay.io/opct/must-gather-monitoring}
export MGM_IMG=${MGM_REPO}:${MGM_VERSION}
export MGM_IMG=${MGM_REPO}:${MGM_VERSION}
Loading

0 comments on commit 4e3018a

Please sign in to comment.