Skip to content

InfluxExporterWatch backed by influx_exporter to collect Influx metrics #131

InfluxExporterWatch backed by influx_exporter to collect Influx metrics

InfluxExporterWatch backed by influx_exporter to collect Influx metrics #131

Workflow file for this run

---
name: "Release standalone binaries and Docker images"
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+-[a-zA-Z0-9]+"
- "v[0-9]+.[0-9]+.[0-9]+"
- "solana-pre"
jobs:
release:
name: Build and release all
runs-on: ubuntu-20.04
permissions:
contents: write
packages: write
steps:
- name: Set up Go 1.18
if: success()
uses: actions/setup-go@v3
with:
go-version: 1.18
- name: Checkout code
if: success()
uses: actions/checkout@v3
# Install the cosign tool except on PR
# https://github.com/sigstore/cosign-installer
- name: Install cosign
if: github.event_name != 'pull_request'
uses: sigstore/[email protected]
with:
cosign-release: 'v1.13.1'
- name: "Get tag data"
if: success()
id: git_tags
run: |
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
git fetch --prune --unshallow
- name: Download module dependencies
if: success()
env:
GOPROXY: "https://proxy.golang.org"
run: |
go clean -modcache
go mod download
- name: Install libsystemd-dev
run: |
sudo apt-get update
sudo apt-get install -y libsystemd-dev gcc-aarch64-linux-gnu
- name: Build binaries for Linux
if: success()
id: build_binaries
run: |
make build-linux-amd64
CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc make build-linux-arm64
- name: Get latest release tag
id: git_last_tag
run: |
# echo '::set-output name=previous_tag::$(git tag --sort=version:refname | grep -v "$(git describe --tags)" | grep -E "v[0-9]+.[0-9]+.[0-9]+$"| tail -n1)'
echo 'solana-pre'
- name: Create Release Changelog
id: git_release_changelog
if: success()
run: |
export RELEASE_BODY=$(git log --no-merges ${{ steps.git_last_tag.outputs.previous_tag }}..${{ github.ref }} --format='* [%h] %s (%an)')
RELEASE_BODY="${RELEASE_BODY//'%'/'%25'}"
RELEASE_BODY="${RELEASE_BODY//$'\n'/'%0A'}"
RELEASE_BODY="${RELEASE_BODY//$'\r'/'%0D'}"
echo "::set-output name=release_body::$RELEASE_BODY"
- name: Create Release
if: success()
id: create_release
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body: ${{ steps.git_release_changelog.outputs.release_body }}
draft: false
prerelease: true
- name: Upload Flow Release Asset Linux amd64
if: success()
id: upload-release-flow-asset-linux-amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-flow-linux-amd64
asset_name: metrikad-flow-linux-amd64
asset_content_type: application/octet-stream
- name: Upload Flow Release Asset Linux amd64 checksum
if: success()
id: upload-release-flow-asset-linux-amd64-checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-flow-linux-amd64.sha256
asset_name: metrikad-flow-linux-amd64.sha256
asset_content_type: text/plain
- name: Upload Flow Release Asset Linux arm64
if: success()
id: upload-release-flow-asset-linux-arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-flow-linux-arm64
asset_name: metrikad-flow-linux-arm64
asset_content_type: application/octet-stream
- name: Upload Flow Release Asset Linux arm64 checksum
if: success()
id: upload-release-flow-asset-linux-arm64-checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-flow-linux-arm64.sha256
asset_name: metrikad-flow-linux-arm64.sha256
asset_content_type: text/plain
- name: Upload Solana Release Asset Linux amd64
if: success()
id: upload-release-solana-asset-linux-amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-solana-linux-amd64
asset_name: metrikad-solana-linux-amd64
asset_content_type: application/octet-stream
- name: Upload Solana Release Asset Linux amd64 checksum
if: success()
id: upload-release-solana-asset-linux-amd64-checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-solana-linux-amd64.sha256
asset_name: metrikad-solana-linux-amd64.sha256
asset_content_type: text/plain
- name: Upload Solana Release Asset Linux arm64
if: success()
id: upload-release-solana-asset-linux-arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-solana-linux-arm64
asset_name: metrikad-solana-linux-arm64
asset_content_type: application/octet-stream
- name: Upload Solana Release Asset Linux arm64 checksum
if: success()
id: upload-release-solana-asset-linux-arm64-checksum
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./metrikad-solana-linux-arm64.sha256
asset_name: metrikad-solana-linux-arm64.sha256
asset_content_type: text/plain
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Sanitize repo slug
uses: actions/github-script@v6
id: repo_slug
with:
result-encoding: string
script: return 'ghcr.io/${{ github.repository }}'.toLowerCase()
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ steps.repo_slug.outputs.result }}
flavor: |
latest=false
tags: |
type=raw,value=solana-pre
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
with:
buildkitd-flags: --debug
# - name: Build and push Docker Flow images
# id: build-and-push-flow
# uses: docker/build-push-action@v3
# with:
# context: .
# push: true
# file: docker/Dockerfile
# platforms: linux/amd64,linux/arm64
# build-args: |
# MA_PROTOCOL=flow
# MA_VERSION=${{ steps.meta.outputs.version }}
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
- name: Build and push Docker Solana images
id: build-and-push-solana
uses: docker/build-push-action@v3
with:
context: .
push: true
file: docker/Dockerfile
platforms: linux/amd64,linux/arm64
build-args: |
MA_PROTOCOL=solana
MA_VERSION=${{ steps.meta.outputs.version }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# - name: Sign the published Docked images for Flow
# if: github.event_name != 'pull_request'
# run: |
# cosign sign --key env://COSIGN_PRIVATE_KEY \
# -a "repo=${{ github.repository }}" \
# -a "ref=${{ github.sha }}" \
# ${{ steps.repo_slug.outputs.result }}@${{ steps.build-and-push-flow.outputs.digest }}
# - name: Sign the published Docked images for Solana
# if: github.event_name != 'pull_request'
# run: |
# cosign sign --key env://COSIGN_PRIVATE_KEY \
# -a "repo=${{ github.repository }}" \
# -a "ref=${{ github.sha }}" \
# ${{ steps.repo_slug.outputs.result }}@${{ steps.build-and-push-solana.outputs.digest }}
# env:
# COSIGN_PRIVATE_KEY: ${{secrets.COSIGN_PRIVATE_KEY}}
# COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}
# - name: Slack Notification Failure
# if: failure()
# id: status
# uses: rtCamp/action-slack-notify@v2
# env:
# SLACK_MESSAGE: "${{ github.event.head_commit.message }}"
# SLACK_TITLE: GitHub Release Metrika Agent
# SLACK_WEBHOOK: ${{ secrets.METRIKA_SLACK_NON_PROD_WEBHOOK }}
# SLACK_ICON: https://app.metrika.co/logo192.png?size=48
# SLACK_CHANNEL: "cicd-node-agent"
# SLACK_USERNAME: "github-ci-metrika-agent"
# SLACK_COLOR: ${{ job.status }}
# SLACK_FOOTER: "Sent by GitHub CI from Metrika Agent repo"
# - name: Slack Notification Success
# if: success()
# uses: rtCamp/action-slack-notify@v2
# env:
# SLACK_MESSAGE: "${{ github.event.head_commit.message }}"
# SLACK_TITLE: GitHub Release Metrika Agent
# SLACK_WEBHOOK: ${{ secrets.METRIKA_SLACK_NON_PROD_WEBHOOK }}
# SLACK_ICON: https://app.metrika.co/logo192.png?size=48
# SLACK_CHANNEL: "cicd-node-agent"
# SLACK_USERNAME: "github-release-metrika-agent"
# SLACK_COLOR: ${{ job.status }}
# SLACK_FOOTER: "Sent by GitHub Release Job from Metrika Agent repo"