Skip to content

Fix

Fix #110

name: Publish
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- "**-exaforce"
workflow_dispatch:
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read
env:
PUSH: ${{ github.event_name != 'pull_request' }}
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
VERBOSE: true
CI: true
DISABLE_MOLD: true
DEBIAN_FRONTEND: noninteractive
CONTAINER_TOOL: docker
CARGO_PROFILE_RELEASE_LTO: fat
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 1
# observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps
# can be removed when we switch back to the upstream openssl-sys crate
CARGO_NET_GIT_FETCH_WITH_CLI: true
jobs:
generate-publish-metadata:
name: Generate Publish-related Metadata
runs-on: ubuntu-24.04
timeout-minutes: 5
outputs:
vector_version: ${{ steps.generate-publish-metadata.outputs.vector_version }}
vector_build_desc: ${{ steps.generate-publish-metadata.outputs.vector_build_desc }}
steps:
- name: Checkout Vector
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
- name: Generate publish metadata
id: generate-publish-metadata
run: make ci-generate-publish-metadata
build-aarch64-unknown-linux-gnu-packages:
name: Build Vector for aarch64-unknown-linux-gnu (.tar.gz)
runs-on: ubuntu-24.04-xl
timeout-minutes: 180
needs: generate-publish-metadata
env:
VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }}
VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }}
steps:
- name: Checkout Vector
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
- name: Bootstrap runner environment (Ubuntu-specific)
run: sudo -E bash scripts/environment/bootstrap-ubuntu-24.04.sh
- name: Bootstrap runner environment (generic)
run: bash scripts/environment/prepare.sh
- name: Build Vector
env:
DOCKER_PRIVILEGED: "true"
run: |
make test-integration-azure ENVIRONMENT=true
make package-aarch64-unknown-linux-gnu-all
- name: Stage package artifacts for publish
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu
path: target/artifacts/vector*
publish-docker:
name: Publish to Docker
runs-on: ubuntu-24.04
timeout-minutes: 15
needs:
- generate-publish-metadata
- build-aarch64-unknown-linux-gnu-packages
env:
VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }}
VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }}
steps:
- name: Checkout Vector
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@ff717079ee2060e4bcee96c4779b553acc87447c # v4
with:
role-to-assume: arn:aws:iam::157206707803:role/github-actions-ExaForce-operations
aws-region: us-east-2
mask-aws-account-id: "false"
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2
with:
mask-password: "false"
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
with:
version: latest
install: true
- name: Download staged package artifacts (aarch64-unknown-linux-gnu)
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu
path: target/artifacts
- name: Set SHA env
run: echo "GITHUB_SHA_SHORT=$(echo ${{ github.event.pull_request.head.sha || github.sha }} | cut -c 1-8)" >> $GITHUB_ENV
- name: Sanitize branch name
run: echo "SANITIZED_BRANCH_NAME=$(echo ${{ github.ref_name }} | tr '/' '_')" >> $GITHUB_ENV
- name: Build and push
uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5
with:
context: target/artifacts
file: distribution/docker/debian/Dockerfile
push: ${{ env.PUSH }}
tags: 157206707803.dkr.ecr.us-east-2.amazonaws.com/vector-base:${{ env.SANITIZED_BRANCH_NAME }}-${{ env.GITHUB_SHA_SHORT }} , 157206707803.dkr.ecr.us-east-2.amazonaws.com/vector-base:${{ env.SANITIZED_BRANCH_NAME }}-latest
platforms: "linux/arm64"