mirror of
https://github.com/kubeshark/kubeshark.git
synced 2026-07-27 17:22:59 +00:00
* modified Dockerfile to work for both amd64 (Intel) and arm64 (M1) * added changelog * Update `Dockerfile` to have `ARCH` build argument * Remove `docs/CHANGES.md` * Upgrade the Basenine version from `v0.3.0` to `v0.4.6` * Update `publish.yml` to have `ARCH` build argument * Switch `BasenineImageRepo` to Docker Hub * Have separate build arguments for `ARCH` and `GOARCH` * Upgrade the Basenine version from `v0.4.6` to `v0.4.10` * Oops forgot to update the 10th duplicated shell script * Fix the oopsie and reduce duplications * Fix `Dockerfile` * Fix the incompatibility issue between Go plugins and gold linker in Alpine inside `Dockerfile` * Fix `asm: xxhash_amd64.s:120: when dynamic linking, R15 is clobbered by a global variable access` error * Update `Dockerfile` to have cross-compilation on an AMD64 machine Also revert changes in the shell scripts * Delete `debug.Dockerfile` * Create a custom base (`debian:buster-slim` based) image for the shipped image * Replace `mertyildiran/debian-pcap` with `up9inc/debian-pcap` * Upgrade Basenine version to `v0.4.12` * Use `debian:stable-slim` as the base * Fix the indentation in the `Dockerfile` * Update `publish.yml` * Enable `publish.yml` for `feature/multiarch_build` branch * Tag correctly and set `ARCH` Docker argument * Remove the lines that are forgotten to be removed from the shell scripts * Add `MizuAgentImageRepo` constant and use it as default `AgentImage` value * Bring back `Set up Cloud SDK` step to `Build the CLI and publish` job * Build ARM64 CLI for Linux as well * Revert "Enable `publish.yml` for `feature/multiarch_build` branch" This reverts commitd30be4c1f0. * Revert Go 1.17 upgrade * Remove `build_extensions_debug.sh` as well * Make the `Dockerfile` to compile the agent statically * Statically link the protocol extensions * Fix `Dockerfile` * Bring back `-s -w` flags * Verify the signatures of the downloads in `dockcross/linux-arm64-musl` * Revert modifications in some shell scripts * Make the `BUILDARCH` and `TARGETARCH` separation in the `Dockerfile` * Separate cross-compilation builder image into a separate repo named `up9inc/linux-arm64-musl-go-libpcap` * Fill the shell script and specify the tag for `dockcross/linux-arm64-musl` * Remove the unnecessary dependencies from `builder-native-base` * Improve the comments in the `Dockerfile` * Upgrade Basenine version to `v0.4.13` * Fix `Dockerfile` * Revert "Revert "Enable `publish.yml` for `feature/multiarch_build` branch"" This reverts commit303e466bdc. * Revert "Revert "Revert "Enable `publish.yml` for `feature/multiarch_build` branch""" This reverts commit0fe252bbdb. * Remove `push-docker-debug` from the `Makefile` * Rename `publish.yml` to `release.yml` Co-authored-by: Alex Haiut <alex@up9.com>
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: |
|
|
TARGETARCH=${{ 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: |
|
|
TARGETARCH=${{ 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'
|