Fix golang runtime detection for containers (#2903) #1
This file contains 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: pre-commit | |
on: | |
push: | |
branches: | |
- main | |
- release-* | |
pull_request: | |
branches: | |
- main | |
- release-* | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idconcurrency | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
env: | |
# renovate: datasource=pypi depName=pre-commit versioning=pep440 | |
PRE_COMMIT_VERSION: ==3.7.1 | |
jobs: | |
pre-commit: | |
name: pre-commit checks | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
steps: | |
- name: Check if pre-commit should run on all files | |
id: run-all-files | |
uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf # v5.3.1 | |
continue-on-error: true | |
with: | |
do_not_skip: '["schedule", "workflow_dispatch"]' | |
paths: |- | |
[ | |
".github/workflows/pre-commit.yml", | |
".go-version", | |
".pre-commit-config.yaml" | |
] | |
skip_after_successful_duplicate: false | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
fetch-depth: 0 | |
- name: Set up Go | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version-file: .go-version | |
cache: false | |
- name: Set up Clang | |
uses: KyleMayes/install-llvm-action@be40c5af3a4adc3e4a03199995ab73aa37536712 # v1.9.0 | |
with: | |
version: "14" | |
- name: Set golangci-lint cache key parts | |
run: | | |
echo "INTERVAL_KEY=$(( $(date +%s) / (7 * 86400) ))" >> $GITHUB_ENV | |
# GH Actions hashFiles() function uses SHA512 | |
echo "GO_MOD_SHA1=$(sha1sum go.mod | cut -d' ' -f1)" >> $GITHUB_ENV | |
# Same as https://github.com/golangci/golangci-lint-action#caching-internals | |
- name: Set up golangci-lint cache | |
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3 | |
with: | |
path: | | |
~/.cache/golangci-lint | |
~/.cache/go-build | |
~/go/pkg | |
# https://github.com/golangci/golangci-lint-action/blob/v3.2.0/src/cache.ts#L53-L69 | |
key: golangci-lint.cache-${{ env.INTERVAL_KEY }}-${{ env.GO_MOD_SHA1 }} | |
restore-keys: | | |
golangci-lint.cache-${{ env.INTERVAL_KEY }}- | |
golangci-lint.cache- | |
- name: Set up pre-commit | |
run: pipx install "pre-commit${PRE_COMMIT_VERSION}" | |
- name: Set pre-commit cache key parts | |
run: | | |
echo "GO_VERSION=$(<.go-version)" >> $GITHUB_ENV | |
echo "PY_HASH=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV | |
- name: Set up pre-commit cache | |
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3 | |
with: | |
path: ~/.cache/pre-commit | |
key: pre-commit-go${{ env.GO_VERSION }}-${{ env.PY_HASH }}-${{ hashFiles('.pre-commit-config.yaml') }} | |
- name: Install libbpf dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -yq libelf-dev zlib1g-dev | |
- name: Initialize and update git submodules | |
run: git submodule init && git submodule update | |
- name: Build libbpf | |
run: make libbpf | |
- name: Run pre-commit | |
run: | | |
declare -a EXTRA_ARGS=() | |
if [[ '${{ steps.run-all-files.outputs.should_skip }}' != 'true' ]]; then | |
EXTRA_ARGS=(--all-files) | |
elif [[ "${GITHUB_EVENT_NAME}" == 'pull_request' ]]; then | |
EXTRA_ARGS=(--from-ref "origin/${GITHUB_BASE_REF}" --to-ref "${GITHUB_SHA}") | |
else | |
EXTRA_ARGS=(--from-ref "${GITHUB_SHA}^" --to-ref "${GITHUB_SHA}") | |
fi | |
pre-commit run --show-diff-on-failure --color=always "${EXTRA_ARGS[@]}" | |
- name: "pre-commit-ci-lite: Apply automatic fixes" | |
uses: pre-commit-ci/lite-action@9d882e7a565f7008d4faf128f27d1cb6503d4ebf # v1.0.2 | |
if: always() |