Skip to content

Commit

Permalink
action: build and test on Linux GH runners (#1995)
Browse files Browse the repository at this point in the history
Co-authored-by: Martijn Laarman <Mpdreamz@gmail.com>
  • Loading branch information
v1v and Mpdreamz committed May 22, 2023
1 parent 70866e1 commit fad8329
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 142 deletions.
123 changes: 123 additions & 0 deletions .github/workflows/test-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
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' }}

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Rustup
run: rustup default 1.67.1

- name: Cargo make
run: cargo install --force cargo-make

- name: Build
run: .ci/linux/build.sh

- name: Package
run: .ci/linux/release.sh true

- name: Build profiler
run: ./build.sh profiler-zip

test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Test & coverage
run: .ci/linux/test.sh

- name: Store test results
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: test-results
path: test/**/junit-*.xml

startup-hook-test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Build agent-zip
run: ./build.sh agent-zip

- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
3.1.100
5.0.100
6.0.100
7.0.100
- name: Startup Hook Tests
run: .ci/linux/test-startuphooks.sh

- name: Store test results
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: test-results
path: test/**/junit-*.xml

profiler-test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Rustup
run: rustup default 1.67.1

- name: Cargo make
run: cargo install --force cargo-make

- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
3.1.100
5.0.100
6.0.100
7.0.100
- name: Build profiler
run: ./build.sh profiler-zip

- name: Profiler Tests
run: .ci/linux/test-profiler.sh

- name: Create Docker Image
run: .ci/linux/build_docker.sh

- name: Store test results
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: test-results
path: test/**/junit-*.xml
20 changes: 20 additions & 0 deletions .github/workflows/test-reporter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
## Workflow to process the JUnit test results and add a report to the checks.
name: test-reporter
on:
workflow_run:
workflows:
- test-linux
types:
- completed

jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: elastic/apm-pipeline-library/.github/actions/test-report@current
with:
artifact: test-results # artifact name
name: JUnit Tests # Name of the check run which will be created
path: "test/**/junit-*.xml" # Path to test results (inside artifact .zip)
reporter: java-junit # Format of test results
142 changes: 0 additions & 142 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -68,148 +68,6 @@ pipeline {
}
}
parallel{
stage('Linux'){
options { skipDefaultCheckout() }
environment {
MSBUILDDEBUGPATH = "${env.WORKSPACE}"
}
/**
Make sure there are no code style violation in the repo.
*/
stages{
// Disable until https://github.com/elastic/apm-agent-dotnet/issues/563
// stage('CodeStyleCheck') {
// steps {
// withGithubNotify(context: 'CodeStyle check') {
// deleteDir()
// unstash 'source'
// dir("${BASE_DIR}"){
// dotnet(){
// sh label: 'Install and run dotnet/format', script: '.ci/linux/codestyle.sh'
// }
// }
// }
// }
// }
/**
Build the project from code..
*/
stage('Build') {
steps {
withGithubNotify(context: 'Build - Linux') {
deleteDir()
unstash 'source'
dir("${BASE_DIR}"){
dotnet(){
sh '.ci/linux/build.sh'
sh label: 'Rustup', script: 'rustup default 1.67.1'
sh label: 'Cargo make', script: 'cargo install --force cargo-make'
sh(label: 'Build profiler', script: './build.sh profiler-zip')
// build nuget packages and profiler
sh(label: 'Package', script: '.ci/linux/release.sh true')
}
}
}
}
post {
unsuccessful {
archiveArtifacts(allowEmptyArchive: true,
artifacts: "${MSBUILDDEBUGPATH}/**/MSBuild_*.failure.txt")
}
success {
archiveArtifacts(allowEmptyArchive: true, artifacts: "${BASE_DIR}/build/output/_packages/*.nupkg,${BASE_DIR}/build/output/*.zip")
}
}
}
/**
Execute unit tests.
*/
stage('Test') {
steps {
withGithubNotify(context: 'Test - Linux', tab: 'tests') {
deleteDir()
unstash 'source'
filebeat(output: "docker.log"){
dir("${BASE_DIR}"){
testTools(){
dotnet(){
sh label: 'Test & coverage', script: '.ci/linux/test.sh'
}
}
}
}
}
}
post {
always {
reportTests()
publishCoverage(adapters: [coberturaAdapter("${BASE_DIR}/target/**/*coverage.cobertura.xml")],
sourceFileResolver: sourceFiles('STORE_ALL_BUILD'))
codecov(repo: env.REPO, basedir: "${BASE_DIR}", secret: "${CODECOV_SECRET}")
}
unsuccessful {
archiveArtifacts(allowEmptyArchive: true,
artifacts: "${MSBUILDDEBUGPATH}/**/MSBuild_*.failure.txt")
}
}
}
stage('Startup Hook Tests') {
steps {
withGithubNotify(context: 'Test startup hooks - Linux', tab: 'tests') {
deleteDir()
unstash 'source'
dir("${BASE_DIR}"){
dotnet(){
sh label: 'Build', script: './build.sh agent-zip'
sh label: 'Test & coverage', script: '.ci/linux/test-startuphooks.sh'
}
}
}
}
post {
always {
reportTests()
}
unsuccessful {
archiveArtifacts(allowEmptyArchive: true, artifacts: "${MSBUILDDEBUGPATH}/**/MSBuild_*.failure.txt")
}
}
}
stage('Profiler Tests') {
steps {
withGithubNotify(context: 'Test profiler - Linux', tab: 'tests') {
deleteDir()
unstash 'source'
dir("${BASE_DIR}"){
dotnet(){
sh label: 'Rustup', script: 'rustup default 1.67.1'
sh label: 'Cargo make', script: 'cargo install --force cargo-make'
sh label: 'Build', script: './build.sh profiler-zip'
sh label: 'Test & coverage', script: '.ci/linux/test-profiler.sh'
}
}
}
}
post {
always {
reportTests()
}
unsuccessful {
archiveArtifacts(allowEmptyArchive: true, artifacts: "${MSBUILDDEBUGPATH}/**/MSBuild_*.failure.txt")
}
}
}
stage('Create Docker image') {
steps {
withGithubNotify(context: 'Create Docker image - Linux') {
dir("${BASE_DIR}"){
sh(label: 'Create Docker Image', script: '.ci/linux/build_docker.sh')
}
}
}
}
}
}
stage('Windows .NET Framework'){
agent { label 'windows-2019 && immutable' }
options { skipDefaultCheckout() }
Expand Down

0 comments on commit fad8329

Please sign in to comment.