From ead8d01358823193064fb2cd4c1cb0e3a50885ff Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Fri, 27 Oct 2023 13:03:21 +0200 Subject: [PATCH] Add github actions This change adds github actions for running lints, go builds and tests, and building a container image. Signed-off-by: Evan Lezar --- .github/workflows/build-images.yaml | 62 +++++++++++++++++++++++++++++ .github/workflows/golang-build.yaml | 43 ++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 .github/workflows/build-images.yaml create mode 100644 .github/workflows/golang-build.yaml diff --git a/.github/workflows/build-images.yaml b/.github/workflows/build-images.yaml new file mode 100644 index 000000000..12853cab0 --- /dev/null +++ b/.github/workflows/build-images.yaml @@ -0,0 +1,62 @@ +# Copyright 2023 NVIDIA CORPORATION +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Images + +# Run this workflow on pull requests +on: + pull_request: + types: + - opened + - closed + branches: + - main + - release-* + +jobs: + build-image: + if: github.event.action == 'opened' || github.event.pull_request.merged == true + runs-on: ubuntu-latest + strategy: + matrix: + dist: [ubuntu20.04, ubi8] + steps: + - uses: actions/checkout@v3 + + - name: Calculate build vars + id: vars + run: | + echo "COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}" >> $GITHUB_ENV + echo "LOWERCASE_REPO_OWNER=$(echo "${GITHUB_REPOSITORY_OWNER}" | awk '{print tolower($0)}')" >> $GITHUB_ENV + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build image + env: + IMAGE_NAME: ghcr.io/${LOWERCASE_REPO_OWNER}/k8s-dra-driver + VERSION: ${COMMIT_SHORT_SHA} + BUILD_MULTI_ARCH_IMAGES: "true" + PUSH_ON_BUILD: "true" + run: | + echo "${VERSION}" + make -f deployments/container/Makefile build-${{ matrix.dist }} + diff --git a/.github/workflows/golang-build.yaml b/.github/workflows/golang-build.yaml new file mode 100644 index 000000000..3718bf6d8 --- /dev/null +++ b/.github/workflows/golang-build.yaml @@ -0,0 +1,43 @@ +# Copyright 2023 NVIDIA CORPORATION +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Golang + +on: [ pull_request ] + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Lint + uses: golangci/golangci-lint-action@v3 + with: + version: latest + args: -v --timeout 5m + skip-cache: true + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Build dev image + run: make .build-image + + - name: Build + run: make docker-build + + - name: Tests + run: make docker-coverage