Skip to content

ci: add Fossa CLI workflow #697

ci: add Fossa CLI workflow

ci: add Fossa CLI workflow #697

Workflow file for this run

name: Pull Request
on:
pull_request:
paths-ignore:
- "docs/**"
- "design/**"
- "changelogs/**"
- "*.md"
- "MAINTAINERS"
branches:
- develop
- "release/**"
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Shellcheck
uses: reviewdog/action-shellcheck@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
path: "."
pattern: "*.sh"
- uses: cachix/install-nix-action@v22
- uses: rrbutani/[email protected]
with:
file: shell.nix
- name: Check if the chart follows a valid semver version
run: |
branch_name="${{ github.event.pull_request.base.ref }}"
./scripts/validate-chart-version.sh --branch $branch_name
- name: Run chart-testing lint
run: |
ct lint --config ct.yaml
validate_codegen:
runs-on: ubuntu-latest
env:
GOPATH: ${{ github.workspace }}/go
GOBIN: ${{ github.workspace }}/go/bin
defaults:
run:
working-directory: ${{ env.GOPATH }}/src/github.com/openebs/zfs-localpv
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: ${{ env.GOPATH }}/src/github.com/openebs/zfs-localpv
- name: Set up Go 1.20
uses: actions/setup-go@v4
with:
go-version: 1.20.14
cache: false
- name: Helm tool installer
uses: Azure/[email protected]
- name: Verify kubegen
run: |
make verify-kubegen
- name: Verify manifests
run: |
make verify-manifests
unit-tests:
runs-on: ubuntu-latest
needs: ["lint", "validate_codegen"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go 1.20
uses: actions/setup-go@v4
with:
go-version: 1.20.14
cache: false
- name: Unit test
run: make test
- name: Upload Coverage Report
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.txt
name: coverage-$(date +%s)
flags: unittests
bdd-tests:
runs-on: ubuntu-latest
needs: ["unit-tests"]
strategy:
fail-fast: true
matrix:
kubernetes: [v1.27.3]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go 1.20
uses: actions/setup-go@v4
with:
go-version: 1.20.14
cache: false
- name: Build images locally
run: make zfs-driver-image || exit 1;
- name: Setup zfs pools
run: |
sudo apt-get install zfsutils-linux -y
truncate -s 100G /tmp/disk.img
sudo zpool create zfspv-pool $(sudo losetup -f /tmp/disk.img --show)
- name: Setup Minikube-Kubernetes
uses: medyagh/setup-minikube@latest
with:
cache: false
minikube-version: 1.31.1
driver: none
kubernetes-version: ${{ matrix.kubernetes }}
cni: calico
start-args: "--install-addons=false"
- name: Setting environment variables
run: |
echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV
- name: bootstrap
run: make bootstrap
- name: Running tests
env:
OPENEBS_NAMESPACE: "openebs"
run: |
make ci
make sanity
- name: Upload CI Test Coverage Report
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./tests/bdd_coverage.txt,./tests/bdd_coverage_custom-node-id.txt
name: coverage-bdd_coverage-$(date +%s)
flags: bddtests
csi-driver:
runs-on: ubuntu-latest
needs: ["bdd-tests"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Build
uses: docker/build-push-action@v5
with:
context: .
file: ./buildscripts/zfs-driver/zfs-driver.Dockerfile
push: false
platforms: linux/amd64, linux/arm64