constellation/.github/workflows/test-unittest.yml

85 lines
2.6 KiB
YAML
Raw Normal View History

name: Unit Tests
on:
workflow_dispatch:
push:
branches:
- main
- "release/**"
2022-09-03 11:47:47 -04:00
paths:
- "**.go"
- "**/go.mod"
- "**/go.sum"
- "**/testdata/**"
- ".github/workflows/test-unittest.yml"
pull_request:
2022-09-03 11:47:47 -04:00
paths:
- "internal/constellation/helm/**"
2022-09-03 11:47:47 -04:00
- "**.go"
- "**/go.mod"
- "**/go.sum"
- "**/testdata/**"
- ".github/workflows/test-unittest.yml"
jobs:
2023-05-19 10:18:59 -04:00
test-unittest:
2023-11-03 06:59:19 -04:00
runs-on: [arc-runner-set]
permissions:
id-token: write
contents: read
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }}
fetch-depth: 0
2023-11-03 06:59:19 -04:00
- name: Setup bazel
uses: ./.github/actions/setup_bazel_nix
with:
useCache: "rbe"
rbePlatform: "ubuntu-22.04"
buildBuddyApiKey: ${{ secrets.BUILDBUDDY_ORG_API_KEY }}
- name: Install AWS cli
run: |
curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
rm -rf awscliv2.zip aws
- name: Login to AWS (IAM role)
uses: aws-actions/configure-aws-credentials@010d0da01d0b5a38af31e9c3470dbfdabdecca3a # v4.0.1
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionGocoverage
aws-region: eu-central-1
- name: Unit Tests
2022-10-31 14:25:02 -04:00
env:
TMPDIR: ${{ runner.temp }}
2023-11-03 06:59:19 -04:00
run: bazel test //... --test_output=errors --config=nostamp --remote_download_minimal
- name: Coverage
id: coverage
run: |
2023-11-03 06:59:19 -04:00
bazel run //bazel/ci:gocoverage_diff --config=nostamp
lines=$(wc -l < coverage_diff.md)
uploadable=$([[ ${lines} -gt 3 ]] && echo "true" || echo "false")
echo "uploadable=$uploadable" | tee -a "$GITHUB_OUTPUT"
- name: Comment coverage
if: steps.coverage.outputs.uploadable == 'true' && github.event_name == 'pull_request'
uses: marocchino/sticky-pull-request-comment@efaaab3fd41a9c3de579aba759d2552635e590fd # v2.8.0
with:
header: coverage
path: coverage_diff.md
recreate: true
- name: Upload coverage
if: github.ref_name == 'main'
run: |
cat coverage_result.json
aws s3 cp coverage_result.json s3://constellation-ci/gocoverage/coverage_main.json
echo "coverage uploaded to s3://constellation-ci/gocoverage/coverage_main.json"