mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-30 12:34:22 +01:00
The version mentioned in the `kata_config_version` needs to be updated for any kernel config change or changed to the patches applied. Without this, CI would not test with the latest kernel changes. We use to enforce this earlier as part of CI when `packaging` was a standalone repo. Add back this check as part of a github action so that the check is performed early on instead of a CI job. Fixes: #6210 Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
99 lines
4.1 KiB
YAML
99 lines
4.1 KiB
YAML
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- edited
|
|
- reopened
|
|
- synchronize
|
|
|
|
name: Static checks
|
|
jobs:
|
|
static-checks:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
cmd:
|
|
- "make vendor"
|
|
- "make static-checks"
|
|
- "make check"
|
|
- "make test"
|
|
- "sudo -E PATH=\"$PATH\" make test"
|
|
env:
|
|
TRAVIS: "true"
|
|
TRAVIS_BRANCH: ${{ github.base_ref }}
|
|
TRAVIS_PULL_REQUEST_BRANCH: ${{ github.head_ref }}
|
|
TRAVIS_PULL_REQUEST_SHA : ${{ github.event.pull_request.head.sha }}
|
|
RUST_BACKTRACE: "1"
|
|
target_branch: ${{ github.base_ref }}
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
path: ./src/github.com/${{ github.repository }}
|
|
- name: Install Go
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: 1.19.3
|
|
env:
|
|
GOPATH: ${{ runner.workspace }}/kata-containers
|
|
- name: Check kernel config version
|
|
run: |
|
|
cd "${{ github.workspace }}/src/github.com/${{ github.repository }}"
|
|
kernel_dir="tools/packaging/kernel/"
|
|
kernel_version_file="${kernel_dir}kata_config_version"
|
|
modified_files=$(git diff --name-only origin/main..HEAD)
|
|
result=$(git whatchanged origin/main..HEAD "${kernel_dir}" >>"/dev/null")
|
|
if git whatchanged origin/main..HEAD "${kernel_dir}" >>"/dev/null"; then
|
|
echo "Kernel directory has changed, checking if $kernel_version_file has been updated"
|
|
if echo "$modified_files" | grep -v "README.md" | grep "${kernel_dir}" >>"/dev/null"; then
|
|
echo "$modified_files" | grep "$kernel_version_file" >>/dev/null || ( echo "Please bump version in $kernel_version_file" && exit 1)
|
|
else
|
|
echo "Readme file changed, no need for kernel config version update."
|
|
fi
|
|
echo "Check passed"
|
|
fi
|
|
- name: Setup GOPATH
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}"
|
|
echo "TRAVIS_PULL_REQUEST_BRANCH: ${TRAVIS_PULL_REQUEST_BRANCH}"
|
|
echo "TRAVIS_PULL_REQUEST_SHA: ${TRAVIS_PULL_REQUEST_SHA}"
|
|
echo "TRAVIS: ${TRAVIS}"
|
|
- name: Set env
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
|
|
echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
|
|
- name: Setup travis references
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
echo "TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = \"/\" } ; { print $3 }')}"
|
|
target_branch=${TRAVIS_BRANCH}
|
|
- name: Setup
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/setup.sh
|
|
env:
|
|
GOPATH: ${{ runner.workspace }}/kata-containers
|
|
- name: Installing rust
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_rust.sh
|
|
PATH=$PATH:"$HOME/.cargo/bin"
|
|
rustup target add x86_64-unknown-linux-musl
|
|
rustup component add rustfmt clippy
|
|
- name: Setup seccomp
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
libseccomp_install_dir=$(mktemp -d -t libseccomp.XXXXXXXXXX)
|
|
gperf_install_dir=$(mktemp -d -t gperf.XXXXXXXXXX)
|
|
cd ${GOPATH}/src/github.com/${{ github.repository }} && ./ci/install_libseccomp.sh "${libseccomp_install_dir}" "${gperf_install_dir}"
|
|
echo "Set environment variables for the libseccomp crate to link the libseccomp library statically"
|
|
echo "LIBSECCOMP_LINK_TYPE=static" >> $GITHUB_ENV
|
|
echo "LIBSECCOMP_LIB_PATH=${libseccomp_install_dir}/lib" >> $GITHUB_ENV
|
|
- name: Run check
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
cd ${GOPATH}/src/github.com/${{ github.repository }} && ${{ matrix.cmd }}
|