mirror of
https://github.com/kubeshark/kubeshark.git
synced 2026-03-18 10:32:36 +00:00
279 lines
8.1 KiB
YAML
279 lines
8.1 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'develop'
|
|
- 'main'
|
|
|
|
concurrency:
|
|
group: mizu-publish-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
docker-registry:
|
|
name: Push Docker image to Docker Hub
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
max-parallel: 2
|
|
fail-fast: false
|
|
matrix:
|
|
target:
|
|
- amd64
|
|
- arm64v8
|
|
|
|
steps:
|
|
- name: Check out the repo
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Determine versioning strategy
|
|
uses: haya14busa/action-cond@v1
|
|
id: condval
|
|
with:
|
|
cond: ${{ github.ref == 'refs/heads/main' }}
|
|
if_true: "minor"
|
|
if_false: "patch"
|
|
|
|
- name: Auto increment SemVer action
|
|
uses: MCKanpolat/auto-semver-action@1.0.5
|
|
id: versioning
|
|
with:
|
|
releaseType: ${{ steps.condval.outputs.value }}
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get version parameters
|
|
shell: bash
|
|
run: |
|
|
echo "##[set-output name=build_timestamp;]$(echo $(date +%s))"
|
|
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
|
id: version_parameters
|
|
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@v3
|
|
with:
|
|
images: |
|
|
up9inc/mizu
|
|
tags: |
|
|
type=raw,${{ steps.versioning.outputs.version }}
|
|
flavor: |
|
|
latest=auto
|
|
prefix=
|
|
suffix=-${{ matrix.target }},onlatest=true
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USER }}
|
|
password: ${{ secrets.DOCKERHUB_PASS }}
|
|
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
build-args: |
|
|
ARCH=${{ matrix.target }}
|
|
SEM_VER=${{ steps.versioning.outputs.version }}
|
|
BUILD_TIMESTAMP=${{ steps.version_parameters.outputs.build_timestamp }}
|
|
GIT_BRANCH=${{ steps.version_parameters.outputs.branch }}
|
|
COMMIT_HASH=${{ github.sha }}
|
|
|
|
gcp-registry:
|
|
name: Push Docker image to GCR
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
max-parallel: 2
|
|
fail-fast: false
|
|
matrix:
|
|
target:
|
|
- amd64
|
|
- arm64v8
|
|
|
|
steps:
|
|
- name: Check out the repo
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Cloud SDK
|
|
uses: google-github-actions/setup-gcloud@master
|
|
with:
|
|
service_account_key: ${{ secrets.GCR_JSON_KEY }}
|
|
export_default_credentials: true
|
|
|
|
- name: Determine versioning strategy
|
|
uses: haya14busa/action-cond@v1
|
|
id: condval
|
|
with:
|
|
cond: ${{ github.ref == 'refs/heads/main' }}
|
|
if_true: "minor"
|
|
if_false: "patch"
|
|
|
|
- name: Auto increment SemVer action
|
|
uses: MCKanpolat/auto-semver-action@1.0.5
|
|
id: versioning
|
|
with:
|
|
releaseType: ${{ steps.condval.outputs.value }}
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get version parameters
|
|
shell: bash
|
|
run: |
|
|
echo "##[set-output name=build_timestamp;]$(echo $(date +%s))"
|
|
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
|
id: version_parameters
|
|
|
|
- name: Get base image name
|
|
shell: bash
|
|
run: echo "##[set-output name=image;]$(echo gcr.io/up9-docker-hub/mizu/${GITHUB_REF#refs/heads/})"
|
|
id: base_image_step
|
|
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@v3
|
|
with:
|
|
images: |
|
|
${{ steps.base_image_step.outputs.image }}
|
|
tags: |
|
|
type=raw,${{ steps.versioning.outputs.version }}
|
|
flavor: |
|
|
latest=auto
|
|
prefix=
|
|
suffix=-${{ matrix.target }},onlatest=true
|
|
|
|
- name: Login to GCR
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: gcr.io
|
|
username: _json_key
|
|
password: ${{ secrets.GCR_JSON_KEY }}
|
|
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
build-args: |
|
|
ARCH=${{ matrix.target }}
|
|
SEM_VER=${{ steps.versioning.outputs.version }}
|
|
BUILD_TIMESTAMP=${{ steps.version_parameters.outputs.build_timestamp }}
|
|
GIT_BRANCH=${{ steps.version_parameters.outputs.branch }}
|
|
COMMIT_HASH=${{ github.sha }}
|
|
|
|
docker-manifest:
|
|
name: Create and Push a Docker Manifest
|
|
runs-on: ubuntu-latest
|
|
needs: [docker-registry]
|
|
steps:
|
|
- name: Determine versioning strategy
|
|
uses: haya14busa/action-cond@v1
|
|
id: condval
|
|
with:
|
|
cond: ${{ github.ref == 'refs/heads/main' }}
|
|
if_true: "minor"
|
|
if_false: "patch"
|
|
|
|
- name: Auto increment SemVer action
|
|
uses: MCKanpolat/auto-semver-action@1.0.5
|
|
id: versioning
|
|
with:
|
|
releaseType: ${{ steps.condval.outputs.value }}
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get version parameters
|
|
shell: bash
|
|
run: |
|
|
echo "##[set-output name=build_timestamp;]$(echo $(date +%s))"
|
|
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
|
id: version_parameters
|
|
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@v3
|
|
with:
|
|
images: |
|
|
up9inc/mizu
|
|
tags: |
|
|
type=raw,${{ steps.versioning.outputs.version }}
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USER }}
|
|
password: ${{ secrets.DOCKERHUB_PASS }}
|
|
|
|
- name: Create manifest
|
|
run: |
|
|
while IFS= read -r line; do
|
|
docker manifest create $line --amend $line-amd64 --amend $line-arm64v8
|
|
done <<< "${{ steps.meta.outputs.tags }}"
|
|
|
|
- name: Push manifest
|
|
run: |
|
|
while IFS= read -r line; do
|
|
docker manifest push $line
|
|
done <<< "${{ steps.meta.outputs.tags }}"
|
|
|
|
cli:
|
|
name: Build the CLI and publish
|
|
runs-on: ubuntu-latest
|
|
needs: [docker-manifest, gcp-registry]
|
|
steps:
|
|
- name: Set up Go 1.16
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: '1.16'
|
|
|
|
- name: Check out the repo
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Cloud SDK
|
|
uses: google-github-actions/setup-gcloud@master
|
|
with:
|
|
service_account_key: ${{ secrets.GCR_JSON_KEY }}
|
|
export_default_credentials: true
|
|
|
|
- uses: haya14busa/action-cond@v1
|
|
id: condval
|
|
with:
|
|
cond: ${{ github.ref == 'refs/heads/main' }}
|
|
if_true: "minor"
|
|
if_false: "patch"
|
|
|
|
- name: Auto Increment Semver Action
|
|
uses: MCKanpolat/auto-semver-action@1.0.5
|
|
id: versioning
|
|
with:
|
|
releaseType: ${{ steps.condval.outputs.value }}
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get version parameters
|
|
shell: bash
|
|
run: |
|
|
echo "##[set-output name=build_timestamp;]$(echo $(date +%s))"
|
|
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
|
id: version_parameters
|
|
|
|
- name: Build and Push CLI
|
|
run: make push-cli SEM_VER='${{ steps.versioning.outputs.version }}' BUILD_TIMESTAMP='${{ steps.version_parameters.outputs.build_timestamp }}'
|
|
|
|
- name: Log the version into a .txt file
|
|
shell: bash
|
|
run: |
|
|
echo '${{ steps.versioning.outputs.version }}' >> cli/bin/version.txt
|
|
|
|
- name: Release
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
artifacts: "cli/bin/*"
|
|
commit: ${{ steps.version_parameters.outputs.branch }}
|
|
tag: ${{ steps.versioning.outputs.version }}
|
|
prerelease: ${{ github.ref != 'refs/heads/main' }}
|
|
bodyFile: 'cli/bin/README.md'
|