zfs-localpv/.github/workflows/build.yml
Shubham Bajpai 6c6d593437
chore(actions): move bdd tests to github actions (#293)
Signed-off-by: shubham <shubham.bajpai@mayadata.io>
2021-03-05 20:08:29 +05:30

137 lines
3.5 KiB
YAML

# 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: ['push']
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Shellcheck
uses: reviewdog/action-shellcheck@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
path: '.'
pattern: '*.sh'
exclude: './.git/*,./vendor/*'
unit-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Unit test
run: make test
- name: Upload Coverage Report
uses: codecov/codecov-action@v1
bdd-test:
needs: ['unit-test']
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
kubernetes: [v1.20.1]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Installation
run: |
sudo apt-get update -qq
sudo apt-get install -y zfsutils-linux
truncate -s 100G /tmp/disk.img
sudo zpool create zfspv-pool `sudo losetup -f /tmp/disk.img --show`
- name: Set up Go 1.14
uses: actions/setup-go@v2
with:
go-version: 1.14.7
- name: Setup Minikube-Kubernetes
uses: manusa/actions-setup-minikube@v2.3.0
with:
minikube version: v1.16.0
kubernetes version: ${{ matrix.kubernetes }}
github token: ${{ secrets.GITHUB_TOKEN }}
- name: Setting environment variables
run: |
echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV
echo "OPENEBS_NAMESPACE=openebs" >> $GITHUB_ENV
- name: Build images locally
run: make zfs-driver-image || exit 1;
- name: bootstrap
run: make bootstrap
- name: Running tests
run: |
make ci
make sanity
csi-driver:
runs-on: ubuntu-latest
needs: ['lint', 'bdd-test']
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set Tag
run: |
BRANCH="${GITHUB_REF##*/}"
CI_TAG=${BRANCH#v}-ci
if [ ${BRANCH} = "master" ]; then
CI_TAG="ci"
fi
echo "TAG=${CI_TAG}" >> $GITHUB_ENV
echo "BRANCH=${BRANCH}" >> $GITHUB_ENV
- name: Print Tag info
run: |
echo "BRANCH: ${BRANCH}"
echo "TAG: ${TAG}"
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: v0.4.2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Push Image
env:
IMAGE_ORG: ${{ secrets.IMAGE_ORG}}
run: |
make docker.buildx.csi-driver
make buildx.push.csi-driver