Skip to content

Commit 86b65b6

Browse files
authored
Skip integration tests for forks and dependabot PRs (#43)
1 parent ee0ec1a commit 86b65b6

5 files changed

Lines changed: 32 additions & 0 deletions

File tree

.github/workflows/alioss-integration.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,13 @@ on:
1111
push:
1212
branches:
1313
- main
14+
1415
jobs:
1516
alioss-general-integration-tests:
1617
name: Alioss General Integration Tests
1718
runs-on: ubuntu-latest
19+
# Skip forks and Dependabot (no access to secrets)
20+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
1821
steps:
1922
- name: Checkout code
2023
uses: actions/checkout@v6

.github/workflows/azurebs-integration.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jobs:
1616
azurecloud-environment-integration-tests:
1717
name: AzureCloud Environment Integration Tests
1818
runs-on: ubuntu-latest
19+
# Skip forks and Dependabot (no access to secrets)
20+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
1921
steps:
2022
- name: Checkout code
2123
uses: actions/checkout@v6

.github/workflows/gcs-integration.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jobs:
1616
gcs-integration-fast-tests:
1717
name: GCS Integation Fast Tests
1818
runs-on: ubuntu-latest
19+
# Skip forks and Dependabot (no access to secrets)
20+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
1921
steps:
2022
- name: Checkout code
2123
uses: actions/checkout@v6
@@ -46,6 +48,8 @@ jobs:
4648
gcs-integration-all-tests:
4749
name: GCS Integation All Tests
4850
runs-on: ubuntu-latest
51+
# Skip forks and Dependabot (no access to secrets)
52+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
4953
steps:
5054
- name: Checkout code
5155
uses: actions/checkout@v6

.github/workflows/s3-integration.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
aws-s3-us-integration:
1818
name: AWS S3 US Integration
1919
runs-on: ubuntu-latest
20+
# Skip forks and Dependabot (no access to secrets)
21+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
2022
env:
2123
REGION_NAME: us-east-1
2224
STACK_NAME: s3cli-iam
@@ -84,6 +86,8 @@ jobs:
8486
aws-s3-public-read-integration:
8587
name: AWS S3 Public Read Integration
8688
runs-on: ubuntu-latest
89+
# Skip forks and Dependabot (no access to secrets)
90+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
8791
env:
8892
REGION_NAME: us-east-1
8993
STACK_NAME: s3cli-public-bucket
@@ -132,6 +136,8 @@ jobs:
132136
aws-s3-frankfurt-integration:
133137
name: AWS S3 Frankfurt Integration
134138
runs-on: ubuntu-latest
139+
# Skip forks and Dependabot (no access to secrets)
140+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
135141
env:
136142
REGION_NAME: eu-central-1
137143
STACK_NAME: s3cli-private-bucket
@@ -180,6 +186,8 @@ jobs:
180186
s3-compatible-integration:
181187
name: S3 Compatible Integration
182188
runs-on: ubuntu-latest
189+
# Skip forks and Dependabot (no access to secrets)
190+
if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]'
183191
steps:
184192
- name: Checkout code
185193
uses: actions/checkout@v6

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
# Storage CLI
2+
3+
[![Unit Tests](https://github.com/cloudfoundry/storage-cli/actions/workflows/unit-test.yml/badge.svg?branch=main)](https://github.com/cloudfoundry/storage-cli/actions/workflows/unit-test.yml)
4+
[![Build](https://github.com/cloudfoundry/storage-cli/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/cloudfoundry/storage-cli/actions/workflows/build.yml)
5+
[![S3 Integration Tests](https://github.com/cloudfoundry/storage-cli/actions/workflows/s3-integration.yml/badge.svg?branch=main)](https://github.com/cloudfoundry/storage-cli/actions/workflows/s3-integration.yml)
6+
[![GCS Integration Tests](https://github.com/cloudfoundry/storage-cli/actions/workflows/gcs-integration.yml/badge.svg?branch=main)](https://github.com/cloudfoundry/storage-cli/actions/workflows/gcs-integration.yml)
7+
[![Azure Integration Tests](https://github.com/cloudfoundry/storage-cli/actions/workflows/azurebs-integration.yml/badge.svg?branch=main)](https://github.com/cloudfoundry/storage-cli/actions/workflows/azurebs-integration.yml)
8+
[![Alioss Integration Tests](https://github.com/cloudfoundry/storage-cli/actions/workflows/alioss-integration.yml/badge.svg?branch=main)](https://github.com/cloudfoundry/storage-cli/actions/workflows/alioss-integration.yml)
9+
210
A unified command-line tool for interacting with multiple cloud storage providers through a single binary. The CLI supports five blob-storage providers (Azure Blob Storage, AWS S3, Google Cloud Storage, Alibaba Cloud OSS, and WebDAV), each with its own client implementation while sharing a common command interface.
311

412
**Note:** This CLI works with existing storage resources (buckets, containers, etc.) that are already created and configured in your cloud provider. The storage bucket/container name and credentials must be specified in the provider-specific configuration file.
@@ -105,6 +113,7 @@ Follow these steps to make a contribution to the project:
105113
ginkgo --race --skip-package=integration --cover -v -r ./...
106114
```
107115
- If you added or modified integration tests, to run them locally, follow the instructions in the provider-specific README (see [Providers](#providers) section)
116+
- **Note:** Integration tests require access to cloud provider credentials and cannot run on PRs from forks. They will run automatically when a maintainer merges your PR to main.
108117
- Push changes to your fork
109118
``` bash
110119
git add .
@@ -113,6 +122,12 @@ Follow these steps to make a contribution to the project:
113122
```
114123
- Create a GitHub pull request, selecting `main` as the target branch
115124

125+
## Dependency Updates
126+
127+
This project uses [Dependabot](https://docs.github.com/en/code-security/dependabot) to keep dependencies up to date. Dependencies are grouped (e.g., AWS SDK, Azure SDK, Google Cloud, testing tools) to reduce PR noise.
128+
129+
**Integration tests on Dependabot PRs:** Integration tests are skipped for Dependabot PRs since they don't have access to secrets. If needed, maintainers can manually trigger the integration tests via `workflow_dispatch` before merging. Integration tests will also run automatically after merging to main.
130+
116131
## Releases
117132

118133
### Manual Release

0 commit comments

Comments
 (0)