Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .github/workflows/push_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ env:
REGISTRY_PASSWORD: ${{ secrets.QUAY_SECRET }}
REGISTRY: quay.io/netobserv
IMAGE: flowlogs-pipeline
TAG: latest
TAG: main

jobs:
push-image:
Expand All @@ -26,20 +26,23 @@ jobs:
go-version: ${{ matrix.go }}
- name: checkout
uses: actions/checkout@v2
- name: build image
run: make build-image
- name: build images
run: DOCKER_TAG=${{ env.TAG }} make build-ci-images
- name: podman login to quay.io
uses: redhat-actions/podman-login@v1
with:
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
registry: quay.io
- name: get short sha
id: shortsha
run: echo "::set-output name=short_sha::$(git rev-parse --short HEAD)"
- name: push to quay.io
id: push-to-quay
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ env.IMAGE }}
tags: ${{ env.TAG }}
tags: ${{ env.TAG }} ${{ steps.shortsha.outputs.short_sha }} latest
registry: ${{ env.REGISTRY }}
- name: print image url
run: echo "Image pushed to ${{ steps.push-to-quay.outputs.registry-paths }}"
56 changes: 56 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: release to quay.io
on:
push:
tags: [v*]

env:
REGISTRY_USER: netobserv+github_ci
REGISTRY_PASSWORD: ${{ secrets.QUAY_SECRET }}
REGISTRY: quay.io/netobserv
IMAGE: flowlogs-pipeline

jobs:
push-image:
name: push image
runs-on: ubuntu-20.04
strategy:
matrix:
go: ['1.17']
steps:
- name: checkout
uses: actions/checkout@v2
- name: validate tag
id: validate_tag
run: |
tag=`git describe --exact-match --tags 2> /dev/null`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A question and a suggestion ... we have some of that logic in the version building in the Makfile ... would it make sense to expose that with one a Makefile target instead of writing all this logic here ... maybe move to a script under hack ... I just think that having so much logic inside github action might not be good practice?

This is just a suggestion ... not blocking merge or something like that ,.,., this is good now :-0)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe one downside if we have it in a separate place, it's that the echo "::set-output name=tag::$tag" command, which is tied to the rest of the github action, would be less visible from the action, so it could be more confusing or error prone if the script is modified. What do you think?

if [[ $tag =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-rc[0-9]+)?$ ]]; then
echo "$tag is a valid release tag"
set -e
echo "::set-output name=tag::$tag"
else
echo "$tag is NOT a valid release tag"
exit 1
fi
- name: install make
run: sudo apt-get install make
- name: set up go 1.x
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: build images
run: DOCKER_TAG=${{ steps.validate_tag.outputs.tag }} make build-images
- name: podman login to quay.io
uses: redhat-actions/podman-login@v1
with:
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
registry: quay.io
- name: push to quay.io
id: push-to-quay
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ env.IMAGE }}
tags: ${{ steps.validate_tag.outputs.tag }}
registry: ${{ env.REGISTRY }}
- name: print image url
run: echo "Image pushed to ${{ steps.push-to-quay.outputs.registry-paths }}"
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,16 @@ run: build ## Run
build-image:
DOCKER_BUILDKIT=1 $(OCI_RUNTIME) build -t $(DOCKER_IMG):$(DOCKER_TAG) -f contrib/docker/Dockerfile .

.PHONY: build-ci-images
build-ci-images:
ifeq ($(DOCKER_TAG), main)
# Also tag "latest" only for branch "main"
DOCKER_BUILDKIT=1 $(OCI_RUNTIME) build -t $(DOCKER_IMG):$(DOCKER_TAG) -t $(DOCKER_IMG):latest -f contrib/docker/Dockerfile .
else
DOCKER_BUILDKIT=1 $(OCI_RUNTIME) build -t $(DOCKER_IMG):$(DOCKER_TAG) -f contrib/docker/Dockerfile .
endif
DOCKER_BUILDKIT=1 $(OCI_RUNTIME) build --build-arg BASE_IMAGE=$(DOCKER_IMG):$(DOCKER_TAG) -t $(DOCKER_IMG):$(COMMIT) -f contrib/docker/shortlived.Dockerfile .

.PHONY: push-image
push-image: build-image ## Push latest image
@echo 'publish image $(DOCKER_TAG) to $(DOCKER_IMG)'
Expand Down
3 changes: 3 additions & 0 deletions contrib/docker/shortlived.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ARG BASE_IMAGE=quay.io/netobserv/flowlogs-pipeline:main
FROM $BASE_IMAGE
LABEL quay.expires-after=2w