Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: enable new ci and build.yml changes #338

Merged
merged 2 commits into from
Oct 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
138 changes: 47 additions & 91 deletions .github/workflows/build.yml → .github/workflows/build_and_push.yml
Original file line number Diff line number Diff line change
@@ -1,66 +1,43 @@
# 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
name: Build and Push

on:
create:
push:
branches:
- 'develop'
- 'v*'
- develop
- "release/**"
paths-ignore:
- '*.md'
- 'BUILDMETA'
- 'changelogs/**'
- 'deploy/helm/**'
- 'docs/**'
- 'LICENSE'
- 'MAINTAINERS'
- "*.md"
- "BUILDMETA"
- "changelogs/**"
- "docs/**"
- "design/**"
- "LICENSE"
- "MAINTAINERS"

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: Shellcheck
uses: reviewdog/action-shellcheck@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
path: '.'
pattern: '*.sh'
exclude: './.git/*'
fetch-depth: 0

- name: Set up Go 1.19
uses: actions/setup-go@v5
- uses: cachix/install-nix-action@v22
- uses: rrbutani/[email protected]
with:
go-version: 1.19.9
cache: false
file: shell.nix

- name: Lint Check
uses: golangci/golangci-lint-action@v4
with:
version: v1.56.2
args: -E exportloopref,dupl,revive,bodyclose,goconst,misspell -D structcheck --timeout 5m0s
- name: Check if the chart follows a valid semver version
run: |
BRANCH=${{ github.ref_name }}
./scripts/validate-chart-version.sh --branch $BRANCH

- name: Run chart-testing lint
run: |
ct lint --config ct.yaml

unit-test:
# to ignore builds on release
if: ${{ (github.event.ref_type != 'tag') }}
unit-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -76,15 +53,15 @@ jobs:
run: make test

- name: Upload Coverage Report
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.txt
name: coverage-$(date +%s)
flags: unittests

bdd-test:
needs: ['unit-test']
bdd-tests:
needs: ["unit-tests"]
runs-on: ubuntu-latest
strategy:
fail-fast: true
Expand All @@ -108,7 +85,7 @@ jobs:
driver: none
kubernetes-version: ${{ matrix.kubernetes }}
cni: calico
start-args: '--install-addons=false'
start-args: "--install-addons=false"

- name: Build images locally
run: make lvm-driver-image || exit 1;
Expand All @@ -117,6 +94,8 @@ jobs:
run: make bootstrap

- name: Running tests
env:
OPENEBS_NAMESPACE: "openebs"
run: ./ci/ci-test.sh

- name: Upload Coverage Report
Expand All @@ -127,44 +106,14 @@ jobs:
name: coverage-bdd_coverage-$(date +%s)
flags: bddtests

ansible:
runs-on: ubuntu-latest
needs: ['lint', 'unit-test', 'bdd-test']
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set Image Org
# sets the default IMAGE_ORG to openebs
run: |
[ -z "${{ secrets.IMAGE_ORG }}" ] && IMAGE_ORG=openebs || IMAGE_ORG=${{ secrets.IMAGE_ORG}}
echo "IMAGE_ORG=${IMAGE_ORG}" >> $GITHUB_ENV

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push the ansible image
uses: docker/build-push-action@v5
with:
file: ./e2e-tests/Dockerfile
push: true
load: false
platforms: linux/amd64
tags: |
${{ env.IMAGE_ORG }}/lvm-localpv-e2e:ci

csi-driver:
runs-on: ubuntu-latest
needs: ['lint', 'unit-test', 'bdd-test']
needs: ["lint", "bdd-tests"]
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set Image Org
# sets the default IMAGE_ORG to openebs
run: |
[ -z "${{ secrets.IMAGE_ORG }}" ] && IMAGE_ORG=openebs || IMAGE_ORG=${{ secrets.IMAGE_ORG }}
echo "IMAGE_ORG=${IMAGE_ORG}" >> $GITHUB_ENV
Expand All @@ -174,15 +123,11 @@ jobs:
run: |
echo "DATE=$(date -u +'%Y-%m-%dT%H:%M:%S%Z')" >> $GITHUB_OUTPUT

- name: Set Tag
- name: Set IMAGE_TAG and BRANCH
run: |
BRANCH="${GITHUB_REF##*/}"
CI_TAG=${BRANCH#v}-ci
if [ ${BRANCH} = "develop" ]; then
CI_TAG="ci"
fi
echo "TAG=${CI_TAG}" >> $GITHUB_ENV
echo "BRANCH=${BRANCH}" >> $GITHUB_ENV
BRANCH=${{ github.ref_name }}
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
echo "IMAGE_TAG=$(awk -F': ' '/^version:/ {print $2}' deploy/helm/charts/Chart.yaml)" >> $GITHUB_ENV

- name: Docker meta
id: docker_meta
Expand All @@ -195,11 +140,11 @@ jobs:
ghcr.io/${{ env.IMAGE_ORG }}/lvm-driver
tags: |
type=raw,value=latest,enable=false
type=raw,value=${{ env.TAG }}
type=raw,value=${{ env.IMAGE_TAG }}

- name: Print Tag info
run: |
echo "BRANCH: ${BRANCH}"
echo "BRANCH: ${{ env.BRANCH }}"
echo "${{ steps.docker_meta.outputs.tags }}"

- name: Set up QEMU
Expand Down Expand Up @@ -247,3 +192,14 @@ jobs:
DBUILD_REPO_URL=https://github.com/openebs/lvm-localpv
DBUILD_SITE_URL=https://openebs.io
BRANCH=${{ env.BRANCH }}

release-chart:
runs-on: ubuntu-latest
needs: ["csi-driver"]
steps:
- uses: actions/checkout@v4
- name: Publish lvm localpv develop or prerelease helm chart
uses: stefanprodan/helm-gh-pages@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
charts_dir: ./deploy/helm
56 changes: 0 additions & 56 deletions .github/workflows/chart-lint-test.yml

This file was deleted.

Loading
Loading