Skip to content

Go1.19 sigma

Go1.19 sigma #309

Workflow file for this run

name: ci
on:
push:
branches:
- master
- dev
tags:
- '*'
pull_request:
branches:
- master
- dev
types:
- opened
- edited
- reopened
- synchronize
- ready_for_review
- unlocked
- review_requested
workflow_dispatch:
env:
DOCKER_REGISTRY_REPOSITORY: sysflowtelemetry/sf-processor
PLUGIN_BUILDER_DOCKER_REGISTRY_REPOSITORY: sysflowtelemetry/plugin-builder
GH_ORGANIZATION: sysflow-telemetry
jobs:
lint-core:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.19
- name: Lint core module
uses: golangci/golangci-lint-action@v3
with:
version: v1.51.1
working-directory: core
args: --disable=errcheck --build-tags=flatrecord
lint-driver:
needs: lint-core
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: 1.19
- name: Lint driver module
uses: golangci/golangci-lint-action@v3
with:
version: v1.51.1
working-directory: driver
args: --disable=errcheck
docker:
needs: lint-driver
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Read manifest
shell: bash
run: |
echo "UBI_VERSION=$(awk -F'=' '/UBI_VERSION/{print $2}' makefile.manifest.inc)" >> $GITHUB_ENV
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
${{ env.DOCKER_REGISTRY_REPOSITORY }}
ghcr.io/${{ github.repository }}
tags: |
type=edge,branch=master
type=ref,event=branch
type=ref,event=tag
type=ref,event=pr
labels: |
org.opencontainers.image.documentation=https://sysflow.readthedocs.io/
org.opencontainers.image.vendor=SysFlow
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
if: ${{ github.event_name != 'pull_request' }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
if: ${{ github.event_name != 'pull_request' }}
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set build args
id: args
shell: bash
run: |
echo "##[set-output name=ubi_version;]$(awk -F'=' '/UBI_VERSION/{print $2}' makefile.manifest.inc)"
echo "##[set-output name=branch;]$(echo ${GITHUB_REF##refs/*/})"
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- name: Build and push plugin builder image
id: docker_plugin_builder
uses: docker/build-push-action@v2
with:
push: ${{ github.event_name != 'pull_request' }}
tags: |
${{ env.PLUGIN_BUILDER_DOCKER_REGISTRY_REPOSITORY }}:${{ steps.args.outputs.branch }}
ghcr.io/${{ env.GH_ORGANIZATION }}/plugin-builder:${{ steps.args.outputs.branch }}
target: base
labels: "${{ steps.meta.outputs.labels }}"
build-args: |
BUILD_NUMBER=${{ steps.args.outputs.sha_short }}
VERSION=${{ steps.args.outputs.branch }}
RELEASE=${{ steps.args.outputs.sha_short }}
UBI_VER=${{ steps.args.outputs.ubi_version }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: ${{ github.event_name != 'pull_request' }}
tags: "${{ steps.meta.outputs.tags }}"
labels: "${{ steps.meta.outputs.labels }}"
cache-from: type=registry,ref=ghcr.io/${{ env.GH_ORGANIZATION }}/plugin-builder:${{ steps.args.outputs.branch }}
build-args: |
BUILD_NUMBER=${{ steps.args.outputs.sha_short }}
VERSION=${{ steps.args.outputs.branch }}
RELEASE=${{ steps.args.outputs.sha_short }}
UBI_VER=${{ steps.args.outputs.ubi_version }}
- name: push README to Dockerhub
uses: christian-korneck/update-container-description-action@v1
if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }}
env:
DOCKER_USER: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKER_PASS: ${{ secrets.DOCKERHUB_TOKEN }}
with:
destination_container_repo: ${{ env.DOCKER_REGISTRY_REPOSITORY }}
provider: dockerhub
readme_file: "README.md"
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
release:
needs: docker
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Setup cmake
uses: jwlawson/[email protected]
with:
cmake-version: '3.16.x'
- name: Get version from tag
id: tag_name
shell: bash
run: |
GHREF=${GITHUB_REF#refs/tags/}; echo "CURRENT_VERSION=${GHREF%%-*}" >> $GITHUB_ENV
echo "CURRENT_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Build Release Assets
id: build_release_assets
shell: bash
run: |
docker pull ${{ env.DOCKER_REGISTRY_REPOSITORY }}:${{ steps.tag_name.outputs.current_tag }}
make package
echo "##[set-output name=deb;] $(ls ${{ github.workspace }}/scripts/cpack/*.deb)"
echo "##[set-output name=rpm;] $(ls ${{ github.workspace }}/scripts/cpack/*.rpm)"
echo "##[set-output name=targz;] $(ls ${{ github.workspace }}/scripts/cpack/*.tar.gz)"
- name: Get Changelog Entry
id: changelog_reader
uses: mindsers/changelog-reader-action@v2
with:
version: ${{ env.CURRENT_VERSION }}
path: ./CHANGELOG.md
- name: Release
uses: softprops/action-gh-release@v1
with:
body: ${{ steps.changelog_reader.outputs.changes }}
token: ${{ secrets.GITHUB_TOKEN }}
prerelease: ( contains(env.CURRENT_VERSION, '-rc') || contains(env.CURRENT_VERSION, '-alpha') || contains(env.CURRENT_VERSION, '-beta') )
draft: true
files: |
${{ steps.build_release_assets.outputs.deb }}
${{ steps.build_release_assets.outputs.rpm }}
${{ steps.build_release_assets.outputs.targz }}