From 5954aed9f2c313cde4db54c36dfbabe6efc6561f Mon Sep 17 00:00:00 2001 From: Carlos Eduardo Arango Gutierrez Date: Thu, 25 Jan 2024 15:23:42 +0100 Subject: [PATCH] Add github action Signed-off-by: Carlos Eduardo Arango Gutierrez --- .github/workflows/images.yaml | 76 +++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/images.yaml diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml new file mode 100644 index 00000000..419ad7c6 --- /dev/null +++ b/.github/workflows/images.yaml @@ -0,0 +1,76 @@ +# Copyright 2024 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. + +# Run this workflow on pull requests +name: images + +on: + pull_request: + types: + - opened + - synchronize + branches: + - main + - release-* + push: + branches: + - main + - release-* + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - 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 + REPO_FULL_NAME="${{ github.event.pull_request.head.repo.full_name }}" + echo "${REPO_FULL_NAME}" + echo "LABEL_IMAGE_SOURCE=https://github.com/${REPO_FULL_NAME}" >> $GITHUB_ENV + if [[ "${{ github.actor }}" == "dependabot[bot]" ]]; then + echo "PUSH_ON_BUILD=false" >> $GITHUB_ENV + else + echo "PUSH_ON_BUILD=true" >> $GITHUB_ENV + fi + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - 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: + GOLANG_VERSION: "1.21.6" + run: | + docker build --build-arg GOLANG_VERSION=${GOLANG_VERSION} \ + -f ./images/devel/Dockerfile \ + --tag ghcr.io/${LOWERCASE_REPO_OWNER}/k8s-test-infra:${COMMIT_SHORT_SHA} \ + . + push: + needs: build + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + steps: + - name: Push image + run: | + docker push ghcr.io/${LOWERCASE_REPO_OWNER}/k8s-test-infra:${COMMIT_SHORT_SHA}