Skip to content

Add upgrade command and new version of Makefile #33

Add upgrade command and new version of Makefile

Add upgrade command and new version of Makefile #33

Workflow file for this run

name: CI Pipeline
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
branches:
- main
env:
IMAGE_NAME: quay.io/validatedpatterns/patternizer
GO_VERSION: '1.24'
jobs:
lint-and-format:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: src/go.sum
- name: Run linting checks
run: make lint
build-and-test:
runs-on: ubuntu-latest
needs: lint-and-format
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: src/go.sum
- name: Build binary
run: make build
- name: Run unit tests
run: make test-unit
- name: Generate test coverage report
run: make test-coverage
- name: Run integration tests
run: make test-integration
build-container:
runs-on: ubuntu-latest
needs: build-and-test
if: github.event_name == 'push'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Quay.io
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Determine tags
id: meta
run: |
echo "sha_tag=sha-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
if [[ $GITHUB_REF == refs/tags/* ]]; then
echo "is_tag=true" >> $GITHUB_OUTPUT
echo "git_tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
else
echo "is_tag=false" >> $GITHUB_OUTPUT
fi
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Containerfile
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.sha_tag }}
${{ steps.meta.outputs.is_tag == 'true' && format('{0}:{1}', env.IMAGE_NAME, steps.meta.outputs.git_tag) || '' }}
${{ steps.meta.outputs.is_tag == 'false' && format('{0}:latest', env.IMAGE_NAME) || '' }}