Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
32f33ba
travis to githubaction migration
Dec 8, 2025
11f9e32
add coverage scripts
Dec 8, 2025
fbae862
removed travis.yaml
Dec 8, 2025
2f7e66f
canges in makefile
Dec 8, 2025
f1dbe44
minor changes
Dec 8, 2025
c1a197c
minor changes
Dec 8, 2025
8950e30
minor changes
Dec 8, 2025
d4006cd
minor changes
Dec 8, 2025
dbf9075
minor changes
Dec 8, 2025
c972dd1
minor changes
Dec 8, 2025
139464c
minor changes
Dec 8, 2025
b9dd66d
fix: use full ubi8/ubi base (has rpcbind and nfs-utils)
Dec 8, 2025
a52728c
fix: use full ubi8/ubi base (has rpcbind and nfs-utils)
Dec 8, 2025
2564d2e
Fix Dockerfile image tag: ubi8/ubi:8 -> ubi8/ubi:latest
Dec 8, 2025
71f082d
minor changes
Dec 8, 2025
9440dca
minor changes
Dec 8, 2025
5abdfee
minor changes
Dec 8, 2025
90e0600
minor changes
Dec 8, 2025
7996aa9
minor changes
Dec 8, 2025
34541b0
minor changes
Dec 8, 2025
d7b78dd
minor changes
Dec 8, 2025
de0199e
minor changes
Dec 8, 2025
1e7fb30
fixed review comments
Dec 11, 2025
ba30846
minor changes
Dec 11, 2025
05d22f8
minor changes
Dec 11, 2025
5ab469f
minor changes
Dec 14, 2025
73272e6
added common steps
Dec 15, 2025
fd49f5c
minor changes
Dec 15, 2025
2bd7960
minor changes in pipeline
Dec 15, 2025
ec9472f
minor changes
Dec 16, 2025
aae88d3
Revert Dockerfile changes
Dec 16, 2025
830e7d5
Revert Dockerfile changes
Dec 16, 2025
93b3690
Revert Dockerfile changes
Dec 16, 2025
985c013
Revert Dockerfile changes
Dec 16, 2025
fa24c1e
Revert Dockerfile changes
Dec 16, 2025
14beee2
fixed review comments
Dec 16, 2025
2d4c6eb
fixed review comments
Dec 16, 2025
663aa85
minor canges
Dec 16, 2025
5fb9f69
minor canges
Dec 16, 2025
9f01112
minor canges
Dec 16, 2025
ade7ad3
minor canges
Dec 16, 2025
f3cf83e
minor canges
Dec 16, 2025
386f9bf
minor canges
Dec 17, 2025
9388067
changed go version to 1.25.3
Dec 17, 2025
2b2c0d9
minor canges
Dec 17, 2025
406067f
minor canges
Dec 17, 2025
cf5348c
minor canges
Dec 17, 2025
62e5292
minor canges
Dec 17, 2025
06d2fe4
minor canges
Dec 17, 2025
2ac127d
minor canges
Dec 17, 2025
b4c22cd
minor canges
Dec 17, 2025
79d4925
minor canges
Dec 17, 2025
599194b
minor changes
ashimagarg27 Dec 18, 2025
5858c3c
Fix to build debian and rpm pkg (#287)
ashimagarg27 Dec 18, 2025
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
176 changes: 127 additions & 49 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,109 @@
name: Release
name: CI & Release

on:
push:
branches:
- main
pull_request:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
common-setup:
runs-on: ubuntu-latest
outputs:
should_release: ${{ steps.check_release.outputs.should_release }}

steps:
- name: Checkout Code
uses: actions/checkout@v5

- name: Print Go Version
run: go version

- name: Get last commit message
id: check_commit
run: |
message=$(git log -1 --pretty=%B)
message="${message//'%'/'%25'}" # Escape '%'
message="${message//$'\n'/'%0A'}" # Escape newlines
message="${message//$'\r'/'%0D'}" # Escape carriage returns
echo "message=$message" >> "$GITHUB_OUTPUT"
shell: bash

- name: Check Commit Message
run: |
echo "Commit Message: ${{ steps.check_commit.outputs.message }}"

- name: Check if release should be triggered
id: check_release
run: |
if [[ "${{ steps.check_commit.outputs.message }}" == *"publish"* ]]; then
echo "should_release=true" >> "$GITHUB_OUTPUT"
echo "Debian/RPM packages will be created"
else
echo "should_release=false" >> "$GITHUB_OUTPUT"
echo "Debian/RPM packages will not be created"
fi

build-and-test:
needs: common-setup
runs-on: ubuntu-latest
permissions:
contents: write # needed to push coverage to gh-pages
pull-requests: write # needed to comment on PRs

steps:
- name: Checkout code
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Install system dependencies (bc + docker)
run: |
sudo apt-get update -qq
sudo apt-get install -y bc docker-ce-cli

- name: Prepare environment
run: |
export GO111MODULE=on
go mod tidy
make deps

- name: Check code formatting
run: make fmt

- name: Run unit tests
run: make test

- name: Generate coverage
run: |
make coverage
./scripts/calculateCoverage.sh
touch "Passing" || touch "Failed"

- name: Build driver image
run: |
make driver
env:
RHSM_USER: ${{ secrets.RHSM_USER }}
RHSM_PASS: ${{ secrets.RHSM_PASS }}

- name: Publish coverage
if: success()
env:
GHE_TOKEN: ${{ secrets.GHE_TOKEN }}
run: |
./scripts/publishCoverage.sh

release:
permissions: write-all
needs: common-setup
if: needs.common-setup.outputs.should_release == 'true'
permissions: write-all
runs-on: ubuntu-latest

strategy:
Expand All @@ -20,55 +116,37 @@ jobs:
APP_VERSION: 1.0.5

steps:
- name: Checkout Code
uses: actions/checkout@v5

- name: Print Go Version
run: go version

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: "go"

- name: Run Unit Tests for cos csi mounter
run: sudo make ut-coverage -C ${{ matrix.package_dir }}
- name: Checkout Code
uses: actions/checkout@v5

- name: Build Debian and RPM packages for cos-csi-mounter systemd service
run: |
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: "go"

- name: Build Debian and RPM packages for cos-csi-mounter systemd service
run: |
cd ${{ matrix.package_dir }}
make packages

- name: Get last commit message
id: check_commit
run: |
message=$(git log -1 --pretty=%B)
message="${message//'%'/'%25'}" # Escape '%'
message="${message//$'\n'/'%0A'}" # Escape newlines
message="${message//$'\r'/'%0D'}" # Escape carriage returns
echo "message=$message" >> "$GITHUB_OUTPUT"
shell: bash

- name: Check Commit Message
run: |
echo "Commit Message: ${{ steps.check_commit.outputs.message }}"
- name: Latest Version (Tag and Release)
if: success()
id: release
uses: softprops/action-gh-release@v2
with:
files: |
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz.sha256
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz.sha256
tag_name: v1.0.5
name: v1.0.5
body: |
## 🚀 What’s New
- Fix for rclone mount hang issue
- Add support for s3fs disable_noobj_cache flag
- Skip unmount for 'is not a mountpoint' error
prerelease: ${{ env.IS_LATEST_RELEASE != 'true' }}

- name: Latest Version (Tag and Release)
id: release
if: contains(steps.check_commit.outputs.message, 'publish')
uses: softprops/action-gh-release@v2
with:
files: |
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz.sha256
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz
/home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz.sha256
tag_name: v1.0.5
name: v1.0.5
body: |
## 🚀 What’s New
- Fix for rclone mount hang issue
prerelease: ${{ env.IS_LATEST_RELEASE != 'true' }}

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repos:
# You are encouraged to use static refs such as tags, instead of branch name
#
# Running "pre-commit autoupdate" would automatically updates rev to latest tag
rev: 0.13.1+ibm.62.dss
rev: 0.13.1+ibm.64.dss
hooks:
- id: detect-secrets # pragma: whitelist secret
# Add options for detect-secrets-hook binary. You can run `detect-secrets-hook --help` to list out all possible options.
Expand Down
12 changes: 6 additions & 6 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"files": "go.sum|^.secrets.baseline$",
"lines": null
},
"generated_at": "2025-09-05T07:59:11Z",
"generated_at": "2025-12-18T07:17:56Z",
"plugins_used": [
{
"name": "AWSKeyDetector"
Expand Down Expand Up @@ -126,14 +126,14 @@
{
"hashed_secret": "a1f0e99af8b76b514ef9e6a174e9c79970332082",
"is_verified": false,
"line_number": 174,
"line_number": 176,
"type": "Secret Keyword",
"verified_result": null
},
{
"hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f",
"is_verified": false,
"line_number": 177,
"line_number": 179,
"type": "Secret Keyword",
"verified_result": null
},
Expand Down Expand Up @@ -172,7 +172,7 @@
{
"hashed_secret": "7e6a3680012346b94b54731e13d8a9ffa3790645",
"is_verified": false,
"line_number": 239,
"line_number": 248,
"type": "Secret Keyword",
"verified_result": null
}
Expand Down Expand Up @@ -227,7 +227,7 @@
{
"hashed_secret": "2e7a7ee14caebf378fc32d6cf6f557f347c96773",
"is_verified": false,
"line_number": 31,
"line_number": 45,
"type": "Secret Keyword",
"verified_result": null
}
Expand Down Expand Up @@ -294,7 +294,7 @@
}
]
},
"version": "0.13.1+ibm.62.dss",
"version": "0.13.1+ibm.64.dss",
"word_list": {
"file": null,
"hash": null
Expand Down
35 changes: 0 additions & 35 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ RUN yum update -y && yum install fuse fuse-libs fuse3 fuse3-libs -y
COPY --from=s3fs-builder /usr/local/bin/s3fs /usr/bin/s3fs
COPY --from=rclone-builder /usr/local/bin/rclone /usr/bin/rclone
COPY ibm-object-csi-driver ibm-object-csi-driver
ENTRYPOINT ["/ibm-object-csi-driver"]
ENTRYPOINT ["/ibm-object-csi-driver"]
16 changes: 8 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,14 @@ EXE_DRIVER_NAME=ibm-object-csi-driver

REGISTRY=quay.io/ibm-object-csi-driver

export LINT_VERSION="2.3.1"
export LINT_VERSION="2.7.2"

COLOR_YELLOW=\033[0;33m
COLOR_RESET=\033[0m
GOFILES=$(shell find . -type f -name '*.go' -not -path "./vendor/*")


all: build


.PHONY: build-% clean

REV=$(shell git describe --long --tags --match='v*' --dirty 2>/dev/null || git rev-list -n1 HEAD)
Expand All @@ -33,9 +31,10 @@ test:

.PHONY: deps
deps:
echo "Installing dependencies ..."
@echo "Installing dependencies ..."
@if ! which golangci-lint >/dev/null || [[ "$$(golangci-lint --version)" != *${LINT_VERSION}* ]]; then \
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v${LINT_VERSION}; \
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | \
sh -s -- -b $(shell go env GOPATH)/bin v${LINT_VERSION}; \
fi

.PHONY: fmt
Expand All @@ -44,9 +43,10 @@ fmt: lint

.PHONY: coverage
coverage: test
cat coverage.out | grep -v /fake > cover.out;
# go tool cover -html=cover.out -o=cover.html
go tool cover -func=cover.out | fgrep total
cat coverage.out | grep -v /fake > cover.out
go tool cover -html=cover.out -o cover.html
@echo "Coverage report: cover.html"
@./scripts/calculateCoverage.sh

clean:
-rm -rf bin
Expand Down
8 changes: 0 additions & 8 deletions cos-csi-mounter/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,6 @@ RPM_ARCH := x86_64
RPM_RELEASE_NUM := 1
REDHAT_SPEC := $(BUILD_DIR)/red-hat.spec

test:
go test -v -timeout 1800s -coverprofile=cover.out ./...
go tool cover -html=cover.out -o=cover.html

ut-coverage: test
@./scripts/coverage.sh
rm cover.html cover.out

build-linux:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -mod mod -o ${BIN_DIR}/cos-csi-mounter-server -ldflags "-s -w -X main.Version=$(APP_VERSION) -X main.GitCommit=$$(git rev-parse HEAD)" -a ./server
./${BIN_DIR}/cos-csi-mounter-server version
Expand Down
Loading