Skip to content

support alternative env var names #181

support alternative env var names

support alternative env var names #181

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 }}
- uses: actions/upload-artifact@v4
with:
name: kprobe-${{ matrix.target }}
path: target/${{ matrix.target }}/release/kprobe
needs: version
version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/version
id: version
outputs:
version: ${{ steps.version.outputs.version }}
prerelease: ${{ steps.version.outputs.prerelease }}
publish: ${{ steps.version.outputs.publish }}
release: ${{ steps.version.outputs.release }}
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:
binary: kprobe
name: kprobe
target: ${{ matrix.target }}
version: "v${{ needs.version.outputs.version }}"
- uses: ./.github/actions/bundle
with:
binary: kprobe
name: kprobe-ott
target: ${{ matrix.target }}
version: "v${{ needs.version.outputs.version }}"
if: ${{ contains(needs.version.outputs.publish, 'bundle') }}
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
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 }}
if: ${{ contains(needs.version.outputs.publish, 'package') }}
needs: [build, version]
publish-bundle:
runs-on: ubuntu-latest
strategy:
matrix:
bundle:
- kprobe
- kprobe-ott
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
- run: ls -lR
- uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.KENTIK_MACHINERY_APP_ID }}
private-key: ${{ secrets.KENTIK_MACHINERY_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
repositories: packages
id: token
- uses: ncipollo/release-action@v1
with:
token: ${{ steps.token.outputs.token }}
repo: packages
tag: "${{ matrix.bundle }}/v${{ needs.version.outputs.version }}"
prerelease: ${{ needs.version.outputs.prerelease }}
allowUpdates: false
removeArtifacts: true
artifacts: "${{ matrix.bundle }}_*.tgz/${{ matrix.bundle }}_*.tgz"
if: ${{ contains(needs.version.outputs.publish, 'bundle') }}
needs: [bundle, 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 "${{ needs.version.outputs.prerelease }}" in
true) REPO="${{ github.event.repository.name }}-dev" ;;
false) REPO="${{ github.event.repository.name }}" ;;
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 }}
if: ${{ contains(needs.version.outputs.publish, 'package') }}
needs: [package, version]