Caches build artifacts to S3 and OSS compatible storage backends. Forked from plugins/drone-s3-cache
1.7K
Drone plugin that allows you to cache directories within the build workspace, this plugin is backed by S3 compatible storages. For the usage information and a listing of the available options please take a look at the docs.
Build the binary with the following command:
export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on
go build -v -a -tags netgo -o release/linux/amd64/drone-oss-cache
Build the Docker image with the following command:
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 yingce/drone-oss-cache .
Support providers: S3[default], OSS
Support checksum function on PLUGIN_PATH and PLUGIN_FILENAME
Support checksumLines function on PLUGIN_PATH and PLUGIN_FILENAME
checksum(file_path string) retrun -> "32bit MD5 string"
checksumLines(file_path string, startLine, endLine int) retrun -> "32bit MD5 string"
write yaml with Drone
default:
- &cache_setting
provider: oss # default s3 proto
endpoint: http://oss-cn-beijing-internal.aliyuncs.com
access_key:
from_secret: cache_key
secret_key:
from_secret: cache_secret
path: k8s-build-cache/sso-front #also support checksum function
filename: '{{ checksum "package.json" }}.tar.gz' # call checksum function
#OR filename: '{{ checksumLines "package.json" 3 10 }}.tar.gz' # call checksumLines function
steps:
- name: restore-cache
image: yingce/drone-oss-cache
settings:
<<: *cache_setting
restore: true
- name: install
image: node
commands:
- npm install
- name: build
image: node
commands:
- npm run build
- name: rebuild-cache
image: yingce/drone-oss-cache
settings:
<<: *cache_setting
rebuild: true
mount:
- node_modules
docker run --rm \
-e PLUGIN_FLUSH=true \
-e PLUGIN_ENDPOINT="http://minio.company.com" \
-e PLUGIN_ACCESS_KEY="myaccesskey" \
-e PLUGIN_SECRET_KEY="mysecretKey" \
-e PLUGIN_FILENAME="{{checksum \"go.mod\"}}" \
-v $(pwd):$(pwd) \
-w $(pwd) \
yingce/drone-oss-cache
Aliyun OSS provider
docker run --rm \
-e PLUGIN_PROVIDER=OSS \
-e PLUGIN_RESTORE=true \
-e PLUGIN_ENDPOINT="https://oss-cn-beijing.aliyuncs.com" \
-e PLUGIN_ACCESS_KEY="myaccesskey" \
-e PLUGIN_SECRET_KEY="mysecretKey" \
-v $(pwd):$(pwd) \
-w $(pwd) \
yingce/drone-oss-cache
docker run --rm \
-e PLUGIN_RESTORE=true \
-e PLUGIN_ENDPOINT="http://minio.company.com" \
-e PLUGIN_ACCESS_KEY="myaccesskey" \
-e PLUGIN_SECRET_KEY="mysecretKey" \
-e DRONE_REPO_OWNER="foo" \
-e DRONE_REPO_NAME="bar" \
-e DRONE_COMMIT_BRANCH="test" \
-v $(pwd):$(pwd) \
-w $(pwd) \
yingce/drone-oss-cache
docker run -it --rm \
-v $(pwd):$(pwd) \
-w $(pwd) \
alpine:latest sh -c "mkdir -p cache && echo 'testing cache' >> cache/test && cat cache/test"
docker run --rm \
-e PLUGIN_REBUILD=true \
-e PLUGIN_MOUNT=".bundler" \
-e PLUGIN_ENDPOINT="http://minio.company.com" \
-e PLUGIN_ACCESS_KEY="myaccesskey" \
-e PLUGIN_SECRET_KEY="mysecretKey" \
-e DRONE_REPO_OWNER="foo" \
-e DRONE_REPO_NAME="bar" \
-e DRONE_COMMIT_BRANCH="test" \
-v $(pwd):$(pwd) \
-w $(pwd) \
yingce/drone-oss-cache
Content type
Image
Digest
Size
9.1 MB
Last updated
almost 7 years ago
docker pull yingce/drone-oss-cache