Skip to content

Disable uploading coverage reports (#8) #8

Disable uploading coverage reports (#8)

Disable uploading coverage reports (#8) #8

Workflow file for this run

# Copyright 2020 The OpenEBS Authors. All rights reserved.
#
# 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: build
on:
# create:
push:
branches:
- 'develop'
- 'v*'
paths-ignore:
- 'deploy/helm/**'
- 'docs/**'
- 'MAINTAINERS'
- '*.md'
- 'LICENSE'
env:
GO_VERSION: 1.19.13
PROVISIONER_NFS_IMAGE: provisioner-nfs
NFS_SERVER_IMAGE: nfs-server-alpine
EXPORT_PATH: /tmp
IMAGE_ORG: ${{ github.repository_owner }}
IMAGE_ARCH: linux/amd64,linux/arm64,linux/arm/v7,linux/ppc64le
jobs:
lint:
# to ignore builds on release
if: ${{ (github.event.ref_type != 'tag') }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: License Check
run: make license-check
unit-test:
# to ignore builds on release
if: ${{ (github.event.ref_type != 'tag') }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Unit test
run: make test
- name: Verify corrections
run: make verify-src
# - name: Upload Coverage Report
# uses: codecov/codecov-action@v5
sanity-build:
# to ignore builds on release
if: ${{ (github.event.ref_type != 'tag') }}
runs-on: ubuntu-latest
needs: ['lint', 'unit-test']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Build provisioner-nfs image
run: make provisioner-nfs-image
- name: Build nfs-server-alpine image
run: make nfs-server-image
- name: Export images
run: make output-image
- name: Upload provisioner-nfs image
uses: actions/upload-artifact@v4
with:
name: ${{ env.PROVISIONER_NFS_IMAGE }}
path: ${{ env.EXPORT_PATH }}/${{ env.PROVISIONER_NFS_IMAGE }}.tar
- name: Upload nfs-server-alpine image
uses: actions/upload-artifact@v4
with:
name: ${{ env.NFS_SERVER_IMAGE }}
path: ${{ env.EXPORT_PATH }}/${{ env.NFS_SERVER_IMAGE }}.tar
sanity-test:
# to ignore builds on release
if: ${{ (github.event.ref_type != 'tag') }}
runs-on: ubuntu-22.04
strategy:
fail-fast: true
matrix:
kubernetes: [v1.27.3, v1.29.12, v1.30.8, v1.31.0]
needs: ['lint', 'unit-test', 'sanity-build']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Download provisioner-nfs image
uses: actions/download-artifact@v4
with:
name: ${{ env.PROVISIONER_NFS_IMAGE }}
path: ${{ env.EXPORT_PATH }}
- name: Download nfs-server-alpine image
uses: actions/download-artifact@v4
with:
name: ${{ env.NFS_SERVER_IMAGE }}
path: ${{ env.EXPORT_PATH }}
- name: Load images
run: make load-image
- name: Install NFS utils
run: |
sudo apt-get update && sudo apt-get install -y nfs-common
- name: Setup Minikube-Kubernetes
uses: medyagh/setup-minikube@latest
with:
cache: false
minikube-version: 1.34.0
driver: none
kubernetes-version: ${{ matrix.kubernetes }}
cni: calico
start-args: '--install-addons=false'
- name: Installation
run: |
./tests/install-localpv.sh
./tests/install-nfs-provisioner.sh
- name: Running sanity tests
run: make sanity-test
provisioner-nfs:
runs-on: ubuntu-latest
needs: ['lint', 'unit-test']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Set CI Tag
run: |
BRANCH="${GITHUB_REF##*/}"
CI_TAG=${BRANCH#v}-ci
if [ ${BRANCH} = "develop" ]; then
CI_TAG="ci"
fi
echo "TAG=${CI_TAG}" >> $GITHUB_ENV
- name: Set Build Date
id: date
run: |
echo "DATE=$(date -u +'%Y-%m-%dT%H:%M:%S%Z')" >> $GITHUB_OUTPUT
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v5
with:
# add each registry to which the image needs to be pushed here
# images: |
# ${{ env.IMAGE_ORG }}/provisioner-nfs
# quay.io/${{ env.IMAGE_ORG }}/provisioner-nfs
images: |
ghcr.io/${{ env.IMAGE_ORG }}/provisioner-nfs
tags: |
type=raw,value=latest,enable=false
type=raw,value=${{ env.TAG }}
- name: Print Tags
run: |
echo "${{ steps.docker_meta.outputs.tags }}"
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
version: v0.5.1
# - name: Login to DockerHub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Login to Quay
# uses: docker/login-action@v3
# with:
# registry: quay.io
# username: ${{ secrets.QUAY_USERNAME }}
# password: ${{ secrets.QUAY_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Image
uses: docker/build-push-action@v6
with:
context: .
file: ./buildscripts/provisioner-nfs/provisioner-nfs.Dockerfile
push: true
provenance: false
platforms: ${{ env.IMAGE_ARCH }}
tags: |
${{ steps.docker_meta.outputs.tags }}
build-args: |
DBUILD_DATE=${{ steps.date.outputs.DATE }}
DBUILD_REPO_URL=https://github.com/jimsihk/dynamic-nfs-provisioner
DBUILD_SITE_URL=https://openebs.io
nfs-server:
runs-on: ubuntu-latest
needs: ['lint', 'unit-test']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set CI Tag
run: |
BRANCH="${GITHUB_REF##*/}"
CI_TAG=${BRANCH#v}-ci
if [ ${BRANCH} = "develop" ]; then
CI_TAG="ci"
fi
echo "TAG=${CI_TAG}" >> $GITHUB_ENV
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v5
with:
# add each registry to which the image needs to be pushed here
# images: |
# ${{ env.IMAGE_ORG }}/nfs-server-alpine
# quay.io/${{ env.IMAGE_ORG }}/nfs-server-alpine
images: |
ghcr.io/${{ env.IMAGE_ORG }}/nfs-server-alpine
tags: |
type=raw,value=latest,enable=false
type=raw,value=${{ env.TAG }}
- name: Print Tags
run: |
echo "${{ steps.docker_meta.outputs.tags }}"
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
version: v0.5.1
# - name: Login to DockerHub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Login to Quay
# uses: docker/login-action@v3
# with:
# registry: quay.io
# username: ${{ secrets.QUAY_USERNAME }}
# password: ${{ secrets.QUAY_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Image
uses: docker/build-push-action@v6
with:
context: ./nfs-server-container
file: nfs-server-container/Dockerfile
push: true
provenance: false
platforms: ${{ env.IMAGE_ARCH }}
tags: |
${{ steps.docker_meta.outputs.tags }}
nfs-e2e:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push the nfs-e2e image
uses: docker/build-push-action@v6
with:
file: ./e2e-tests/Dockerfile
push: true
load: false
provenance: false
platforms: linux/amd64
# tags: |
# ${{ env.IMAGE_ORG }}/nfs-e2e:ci
tags: |
ghcr.io/${{ env.IMAGE_ORG }}/nfs-e2e:ci