build(deps): bump the aws group with 4 updates (#4001) #7493
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Code Health | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
jobs: | |
golangci: | |
name: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
cache: false # see https://github.com/golangci/golangci-lint-action/issues/807 | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 | |
with: | |
version: v2.1.6 | |
unit-tests: | |
env: | |
COVERAGE: coverage.out | |
TEST_CMD: gotestsum --junitfile unit-tests.xml --format standard-verbose -- | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
if: ${{ matrix.os=='ubuntu-latest' }} | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- run: go install gotest.tools/gotestsum@latest | |
- run: make unit-test | |
- name: Test Summary | |
id: test_summary | |
uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 | |
with: | |
paths: unit-tests.xml | |
if: always() && matrix.os == 'ubuntu-latest' | |
- name: Upload coverage file | |
if: matrix.os == 'ubuntu-latest' && github.event_name == 'pull_request' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-file | |
path: coverage.out | |
code-coverage: | |
permissions: | |
pull-requests: write # Required to comment on PRs | |
needs: unit-tests | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Get merge base | |
id: merge_base | |
run: | | |
MERGE_BASE=$(git merge-base "${{ github.event.pull_request.head.sha }}" "${{ github.event.pull_request.base.sha }}") | |
echo "merge_base=$MERGE_BASE" >> "$GITHUB_OUTPUT" | |
echo "Checking coverage against: $MERGE_BASE" | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- name: Download coverage file | |
uses: actions/download-artifact@v4 | |
with: | |
name: coverage-file | |
- name: Check coverage cache | |
id: cache-coverage | |
uses: actions/cache@v4 | |
with: | |
path: coverage.base.out | |
key: coverage-${{ steps.merge_base.outputs.merge_base }} | |
- name: Generate base coverage | |
if: steps.cache-coverage.outputs.cache-hit != 'true' | |
run: | | |
# Get coverage from base branch | |
git checkout ${{ steps.merge_base.outputs.merge_base }} | |
COVERAGE=coverage.base.out make unit-test | |
- name: Save coverage to cache | |
if: steps.cache-coverage.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v4 | |
with: | |
path: coverage.base.out | |
key: coverage-${{ steps.merge_base.outputs.merge_base }} | |
- name: Compare coverage | |
id: compare | |
env: | |
BASE_REF: ${{ github.base_ref }} | |
HEAD_REF: ${{ github.head_ref }} | |
run: | | |
# use go tool cover to calculate coverage percentage | |
base_coverage=$(go tool cover -func=coverage.base.out | grep total: | awk '{print $3}' | sed 's/%//') | |
pr_coverage=$(go tool cover -func=coverage.out | grep total: | awk '{print $3}' | sed 's/%//') | |
# Calculate difference | |
diff=$(echo "$pr_coverage - $base_coverage" | bc) | |
echo "diff=$diff" >> "$GITHUB_OUTPUT" | |
# Create comment content | |
if (( $(echo "$diff >= 0" | bc -l) )); then | |
trend="📈" | |
else | |
trend="📉" | |
fi | |
{ | |
echo "Coverage Report $trend" | |
echo "| Branch | Commit | Coverage |" | |
echo "|--------|--------|----------|" | |
echo "| ${BASE_REF} | ${{ steps.merge_base.outputs.merge_base }} | ${base_coverage}% |" | |
echo "| ${HEAD_REF} | ${{ github.event.pull_request.head.sha }} | ${pr_coverage}% |" | |
echo "| | Difference | ${diff}% |" | |
} > comment.md | |
cat "comment.md" >> "$GITHUB_STEP_SUMMARY" | |
- name: Comment PR | |
uses: marocchino/sticky-pull-request-comment@d2ad0de260ae8b0235ce059e63f2949ba9e05943 | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
with: | |
recreate: true | |
path: comment.md | |
- name: Check coverage threshold | |
run: | | |
if (( $(echo "${{ steps.compare.outputs.diff }} < 0" | bc -l) )); then | |
echo "Error: Coverage difference (${{ steps.compare.outputs.diff }}%) is negative" | |
fi | |
libraryOwners: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- name: Run check-library-owners | |
run: make check-library-owners | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- name: Generate docs | |
run: make gen-docs > /dev/null | |
- name: Check for uncommitted files | |
run: | | |
export FILES= | |
FILES=$(git ls-files -o -m --directory --exclude-standard --no-empty-directory) | |
export LINES= | |
LINES=$(echo "$FILES" | awk 'NF' | wc -l) | |
if [ "$LINES" -ne 0 ]; then | |
echo "Detected files that need to be committed:" | |
echo "${FILES//^/ }" | |
echo "" | |
echo "Try running: make gen-docs" | |
exit 1 | |
fi | |
api: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- run: make devtools | |
- name: Generate api commands | |
run: make gen-api-commands > /dev/null | |
- name: Check for uncommitted files | |
run: | | |
export FILES= | |
FILES=$(git ls-files -o -m --directory --exclude-standard --no-empty-directory) | |
export LINES= | |
LINES=$(echo "$FILES" | awk 'NF' | wc -l) | |
if [ "$LINES" -ne 0 ]; then | |
echo "Detected files that need to be committed:" | |
echo "${FILES//^/ }" | |
echo "" | |
echo "Try running: make gen-api-commands" | |
exit 1 | |
fi | |
actionlint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- uses: actions/checkout@v4 | |
- name: Download actionlint | |
id: get_actionlint | |
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) | |
shell: bash | |
- name: Check workflow files | |
run: | | |
echo "::add-matcher::.github/actionlint-matcher.json" | |
${{ steps.get_actionlint.outputs.executable }} -color | |
shell: bash | |
mocks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- name: Generate mocks | |
run: make gen-mocks | |
- name: Check for uncommitted files | |
run: | | |
export FILES= | |
FILES=$(git ls-files -o -m --directory --exclude-standard --no-empty-directory) | |
export LINES= | |
LINES=$(echo "$FILES" | awk 'NF' | wc -l) | |
if [ "$LINES" -ne 0 ]; then | |
echo "Detected files that need to be committed:" | |
echo "${FILES//^/ }" | |
echo "" | |
echo "Try running: make gen-mocks" | |
exit 1 | |
fi | |
shellcheck: | |
name: shellcheck | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- uses: actions/checkout@v4 | |
- name: Run ShellCheck | |
uses: bewuethr/shellcheck-action@d01912909579c4b1a335828b8fca197fbb8e0aa4 | |
tidy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- name: Run 'go mod tidy' | |
run: go mod tidy | |
- name: Check for uncommitted files | |
run: | | |
export FILES= | |
FILES=$(git ls-files -o -m --directory --exclude-standard --no-empty-directory) | |
export LINES= | |
LINES=$(echo "$FILES" | awk 'NF' | wc -l) | |
if [ "$LINES" -ne 0 ]; then | |
echo "Detected files that need to be committed:" | |
echo "${FILES//^/ }" | |
echo "" | |
echo "Try running: go mod tidy" | |
exit 1 | |
fi | |
licensecheck: | |
name: licensecheck | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- run: ./build/ci/check-licenses.sh | |
checktemplates: | |
name: checktemplates | |
runs-on: ubuntu-latest | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- run: make check-templates | |
verify_image: | |
name: Build docker image | |
runs-on: ubuntu-latest | |
env: | |
DOCKER_CLI_EXPERIMENTAL: enabled | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Check out the repo | |
uses: actions/checkout@v4 | |
- name: Linting | |
uses: hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf | |
with: | |
dockerfile: Dockerfile | |
- name: Enable containerd image store | |
uses: docker/setup-docker-action@b60f85385d03ac8acfca6d9996982511d8620a19 | |
with: | |
version: v24.0.6 | |
daemon-config: | | |
{ | |
"features": { | |
"containerd-snapshotter": true | |
} | |
} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@18ce135bb5112fa8ce4ed6c17ab05699d7f3a5e0 | |
- name: Build image to dockerhub staging registry | |
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
tags: mongodb/atlas:test | |
file: Dockerfile | |
e2e-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: GitHubSecurityLab/actions-permissions/monitor@v1 | |
with: | |
config: ${{ vars.PERMISSIONS_CONFIG }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
- run: go install gotest.tools/gotestsum@latest | |
- run: make e2e-test-snapshots | |
env: | |
TEST_CMD: gotestsum --junitfile e2e-tests.xml --format standard-verbose -- | |
- name: Test Summary | |
if: always() | |
uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 | |
with: | |
paths: e2e-tests.xml |