https://github.com/drone-plugins/drone-gcs
Drone plugin for publishing artifacts to Google Cloudstorage
https://github.com/drone-plugins/drone-gcs
drone drone-plugin
Last synced: 5 months ago
JSON representation
Drone plugin for publishing artifacts to Google Cloudstorage
- Host: GitHub
- URL: https://github.com/drone-plugins/drone-gcs
- Owner: drone-plugins
- License: apache-2.0
- Created: 2015-11-17T18:19:59.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-08-15T22:43:43.000Z (10 months ago)
- Last Synced: 2026-01-13T20:40:41.966Z (5 months ago)
- Topics: drone, drone-plugin
- Language: Go
- Homepage: http://plugins.drone.io/drone-plugins/drone-gcs
- Size: 21.2 MB
- Stars: 9
- Watchers: 3
- Forks: 14
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# drone-gcs
[](http://cloud.drone.io/drone-plugins/drone-gcs)
[](https://gitter.im/drone/drone)
[](https://discourse.drone.io)
[](https://stackoverflow.com/questions/tagged/drone.io)
[](https://microbadger.com/images/plugins/gcs "Get your own image badge on microbadger.com")
[](http://godoc.org/github.com/drone-plugins/drone-gcs)
[](https://goreportcard.com/report/github.com/drone-plugins/drone-gcs)
Drone plugin to publish files and artifacts to Google Cloud Storage. For the usage information and a listing of the available options please take a look at [the docs](http://plugins.drone.io/drone-plugins/drone-gcs/).
Run the following script to install git-leaks support to this repo.
```
chmod +x ./git-hooks/install.sh
./git-hooks/install.sh
```
## Build
Build the binary with the following command:
```console
export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on
go build -v -a -tags netgo -o release/linux/amd64/drone-gcs
```
## Docker
Build the Docker image with the following command:
```console
docker build \
--label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
--label org.label-schema.vcs-ref=$(git rev-parse --short HEAD) \
--file docker/Dockerfile.linux.amd64 --tag plugins/gcs .
```
### Usage
* For upload
```console
docker run --rm \
-e PLUGIN_SOURCE="dist" \
-e PLUGIN_TARGET="bucket/dir/" \
-e PLUGIN_IGNORE="bin/*" \
-e PLUGIN_ACL="allUsers:READER,user@domain.com:OWNER" \
-e PLUGIN_GZIP="js,css,html" \
-e PLUGIN_CACHE_CONTROL="public,max-age=3600" \
-e PLUGIN_METADATA='{"x-goog-meta-foo":"bar"}' \
-v $(pwd):$(pwd) \
-w $(pwd) \
plugins/gcs
```
## Glob Pattern Support
The plugin now supports glob patterns for the `PLUGIN_SOURCE` parameter, enabling flexible file selection:
### Basic Glob Patterns
* `*` - matches any sequence of characters (except path separators)
* `?` - matches any single character
* `[]` - matches any character within brackets
* `**` - recursive directory matching
### Examples
```console
# Upload all JavaScript files from any subdirectory
PLUGIN_SOURCE="src/**/*.js"
# Upload specific file types from multiple directories
PLUGIN_SOURCE="dist/*.html,assets/*.css,build/*.js"
# Upload all files from specific directories
PLUGIN_SOURCE="public/**,static/**"
# Mixed patterns - directories and globs
PLUGIN_SOURCE="./dist,./assets/*.png,docs/**/*.md"
```
### Multiple Pattern Support
You can specify multiple patterns separated by commas:
```console
docker run --rm \
-e PLUGIN_SOURCE="dist/*.html,assets/**/*.{css,js},docs/*.md" \
-e PLUGIN_TARGET="bucket/website/" \
-e PLUGIN_IGNORE="**/*.tmp,**/*.log" \
plugins/gcs
```
### Enhanced Ignore Patterns
The `PLUGIN_IGNORE` parameter also supports multiple patterns:
```console
# Ignore multiple file types and directories
PLUGIN_IGNORE="*.log,*.tmp,node_modules/**,**/.git/**"
```
### Backward Compatibility
All existing functionality remains unchanged:
- Single directory paths work exactly as before
- Existing ignore patterns continue to function
- No configuration changes required for current deployments
* For download
```console
docker run --rm \
-e PLUGIN_TOKEN="" \
-e PLUGIN_SOURCE="bucket/dir/" \
-e PLUGIN_DOWNLOAD="true" \
-v $(pwd):$(pwd) \
-w $(pwd) \
plugins/gcs
```