Skip to content

WIP: publish kentik agent package #164

WIP: publish kentik agent package

WIP: publish kentik agent package #164

Workflow file for this run

name: build
on:
push:
branches: "*"
tags: "[0-9]+.[0-9]+.[0-9]+*"
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
target:
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-musl
- armv7-unknown-linux-musleabihf
- x86_64-unknown-freebsd
continue-on-error: ${{ !startsWith(matrix.target, 'x86_64') }}
steps:
# - uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: stable
# target: ${{ matrix.target }}
# - uses: webfactory/[email protected]
# with:
# ssh-private-key: ${{ secrets.KENTIK_API_RUST_DEPLOY_KEY }}
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - run: |
# DOCKER_OPTS="-v $SSH_AUTH_SOCK:/ssh-agent -e SSH_AUTH_SOCK=/ssh-agent"
# echo DOCKER_OPTS="$DOCKER_OPTS" >> $GITHUB_ENV
# - uses: docker/build-push-action@v4
# with:
# context: .github/workflows
# file: .github/workflows/Dockerfile.${{ matrix.target }}
# tags: local/cross:${{ matrix.target }}
# push: false
# env:
# DOCKER_BUILDKIT: 1
# - uses: actions-rs/cargo@v1
# with:
# use-cross: true
# command: build
# args: --release --target ${{ matrix.target }}
- run: |
mkdir -p target/${{ matrix.target }}/release
touch target/${{ matrix.target }}/release/kprobe
shell: bash
- uses: actions/upload-artifact@v4
with:
name: kprobe-${{ matrix.target }}
path: target/${{ matrix.target }}/release/kprobe
needs: version
version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: version
run: |
git describe --always --tags > version
date -u +%Y%m%d%H%M%S >> version
case "${{ startsWith(github.ref, 'refs/tags') }}" in
true) VERSION=`sed -n 1p version` ;;
false) VERSION=`sed -n 2p version` ;;
esac
echo "::notice ::kprobe version: $VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: version
path: version
bundle:
runs-on: ubuntu-latest
strategy:
matrix:
target:
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-musl
- armv7-unknown-linux-musleabihf
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/bundle
with:
artifact: kprobe-${{ matrix.target }}
version: ${{ needs.version.outputs.version }}
needs: [build, version]
package:
runs-on: ubuntu-latest
strategy:
matrix:
format: [deb, rpm]
target:
- name: aarch64-unknown-linux-musl
arch: aarch64
- name: armv7-unknown-linux-musleabihf
arch: armv7
- name: x86_64-unknown-linux-musl
arch: x86_64
continue-on-error: ${{ !startsWith(matrix.target, 'x86_64') }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/package
with:
artifact: kprobe-${{ matrix.target.name }}
version: ${{ needs.version.outputs.version }}
arch: ${{ matrix.target.arch }}
format: ${{ matrix.format }}
package: package.yml
needs: [build, version]
# publish-packages:
# runs-on: ubuntu-latest
# steps:
# - uses: ruby/setup-ruby@v1
# with:
# ruby-version: 2.7
# - uses: actions/download-artifact@v4
# with:
# path: packages
# - name: publish packages
# run: |
# ls -ltR packages
# gem install package_cloud
# case "${{ startsWith(github.ref, 'refs/tags') }}" in
# true) REPO="${{ github.event.repository.name }}" ;;
# false) REPO="${{ github.event.repository.name }}-dev" ;;
# esac
# for deb in packages/*.deb/*.deb; do
# package_cloud push kentik/$REPO/debian/jessie $deb
# package_cloud push kentik/$REPO/debian/stretch $deb
# package_cloud push kentik/$REPO/debian/buster $deb
# package_cloud push kentik/$REPO/debian/bullseye $deb
# package_cloud push kentik/$REPO/ubuntu/focal $deb
# package_cloud push kentik/$REPO/ubuntu/bionic $deb
# package_cloud push kentik/$REPO/ubuntu/jammy $deb
# done
# for rpm in packages/*.rpm/*.rpm; do
# package_cloud push kentik/$REPO/el/7 $rpm
# package_cloud push kentik/$REPO/el/8 $rpm
# package_cloud push kentik/$REPO/el/9 $rpm
# done
# env:
# PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
# needs: [package, version]