Skip to content

github-action: provenance generation #836

github-action: provenance generation

github-action: provenance generation #836

Workflow file for this run

name: test-linux
on:
push:
branches:
- main
paths-ignore:
- '*.md'
- '*.asciidoc'
- 'docs/**'
pull_request:
paths-ignore:
- '*.md'
- '*.asciidoc'
- 'docs/**'
permissions:
contents: read
concurrency:
group: '${{ github.workflow }}-${{ github.ref }}'
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
defaults:
run:
shell: bash
env:
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
# 'pack' & 'tests' are required checks in this workflow.
# To not burn unneeded CI cycles:
# - Our required checks will always succeed if doc only changes are detected.
# - all jobs depend on 'format' to not waste cycles on quickly fixable errors.
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Bootstrap Action Workspace
uses: ./.github/workflows/bootstrap
- name: Format
run: ./build.sh format
#required step
pack:
runs-on: ubuntu-latest
needs: [ 'format' ]
steps:
- uses: actions/checkout@v4
- name: Bootstrap Action Workspace
uses: ./.github/workflows/bootstrap
with:
rust: 'true'
- name: Package
run: ./build.sh pack
#required step
tests:
runs-on: ubuntu-latest
needs: [ 'format' ]
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Bootstrap Action Workspace
uses: ./.github/workflows/bootstrap
- name: 'Tests: Unit'
run: ./build.sh test --test-suite unit
azure-tests:
runs-on: ubuntu-latest
needs: [ 'format', 'tests' ]
if: ${{ false }}
#if: |
# github.event_name != 'pull_request'
# || github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false
steps:
- uses: actions/checkout@v4
- name: Bootstrap Action Workspace
uses: ./.github/workflows/bootstrap
with:
azure: 'true'
- name: 'Read credentials'
uses: hashicorp/[email protected]
with:
url: ${{ secrets.VAULT_ADDR }}
roleId: ${{ secrets.VAULT_ROLE_ID }}
secretId: ${{ secrets.VAULT_SECRET_ID }}
method: approle
secrets: |
secret/apm-team/ci/apm-agent-dotnet-azure client_id | ARM_CLIENT_ID ;
secret/apm-team/ci/apm-agent-dotnet-azure client_secret | ARM_CLIENT_SECRET ;
secret/apm-team/ci/apm-agent-dotnet-azure subscription_id | ARM_SUBSCRIPTION_ID ;
secret/apm-team/ci/apm-agent-dotnet-azure tenant_id | ARM_TENANT_ID
- name: 'Login to Azure'
run: |
az login --service-principal --username ${{ env.ARM_CLIENT_ID }} --password ${{ env.ARM_CLIENT_SECRET }} --tenant ${{ env.ARM_TENANT_ID }}
az account set --subscription ${{ env.ARM_SUBSCRIPTION_ID }}
echo "AZURE_RESOURCE_GROUP_PREFIX=ci-dotnet-${GITHUB_RUN_ID}" >> ${GITHUB_ENV}
- name: 'Tests: Azure'
run: ./build.sh test --test-suite azure
- name: 'Teardown tests infra'
if: ${{ always() }}
run: |
for group in $(az group list --query "[?name | starts_with(@,'${{ env.AZURE_RESOURCE_GROUP_PREFIX }}')]" --out json | jq .[].name --raw-output); do
az group delete --name "${group}" --no-wait --yes
done
integration-tests:
runs-on: ubuntu-latest
needs: [ 'format', 'tests' ]
steps:
- uses: actions/checkout@v4
- name: Bootstrap Action Workspace
uses: ./.github/workflows/bootstrap
- name: 'Tests: Integrations'
run: ./build.sh test --test-suite integrations
startup-hook-tests:
runs-on: ubuntu-latest
needs: [ 'format', 'tests' ]
steps:
- uses: actions/checkout@v4
- name: Bootstrap Action Workspace
uses: ./.github/workflows/bootstrap
- name: 'Tests: StartupHooks'
run: ./build.sh test --test-suite startuphooks
profiler-tests:
runs-on: ubuntu-latest
needs: [ 'format', 'tests' ]
steps:
- uses: actions/checkout@v4
- name: Bootstrap Action Workspace
id: bootstrap
uses: ./.github/workflows/bootstrap
with:
rust: 'true'
- name: 'Tests: Profiler'
run: ./build.sh test --test-suite profiler
- name: Build Profiler Docker Image
run: |
docker build . -t docker.elastic.co/observability/apm-agent-dotnet:${{ steps.bootstrap.outputs.agent-version }} \
--build-arg AGENT_ZIP_FILE=build/output/elastic_apm_profiler_${{ steps.bootstrap.outputs.agent-version }}-linux-x64.zip