parent
bfebdd8a64
commit
6cf7040471
|
@ -0,0 +1,8 @@
|
|||
pipeline:
|
||||
docker:
|
||||
image: plugins/docker
|
||||
secrets: [ docker_username, docker_password ]
|
||||
repo: lucap/drone-netlify
|
||||
auto_tag: true
|
||||
when:
|
||||
event: tag
|
|
@ -0,0 +1,104 @@
|
|||
---
|
||||
date: 2018-02-15T00:00:00+00:00
|
||||
title: Netlify
|
||||
author: lucaperret
|
||||
tags: [ deploy, netlify ]
|
||||
repo: lucaperret/drone-netlify
|
||||
logo: netlify.svg
|
||||
image: lucap/drone-netlify
|
||||
---
|
||||
|
||||
The netlify plugin deploy your build to [netlify.com](https://netlify.com).
|
||||
|
||||
The below pipeline configuration demonstrates simple usage to deploy the current working directory:
|
||||
|
||||
```yaml
|
||||
pipeline:
|
||||
netlify:
|
||||
image: lucap/drone-netlify
|
||||
token: xxxxx
|
||||
site_id: xxxxxxx-xxxx-xxx-xxxxxxxx
|
||||
```
|
||||
|
||||
Example configuration for assigning [Netlify subdomain](https://www.netlify.com/docs/custom-domains/):
|
||||
|
||||
```diff
|
||||
pipeline:
|
||||
netlify:
|
||||
image: lucap/drone-netlify
|
||||
token: xxxxx
|
||||
site_id: xxxxxxx-xxxx-xxx-xxxxxxxx
|
||||
+ site_name: my-deployment-alias
|
||||
```
|
||||
|
||||
Example configuration with [Custom domain](https://www.netlify.com/docs/custom-domains/):
|
||||
|
||||
```diff
|
||||
pipeline:
|
||||
netlify:
|
||||
image: lucap/drone-netlify
|
||||
token: xxxxx
|
||||
site_id: xxxxxxx-xxxx-xxx-xxxxxxxx
|
||||
- site_name: my-deployment-alias
|
||||
+ domain: my-custom-domain.com
|
||||
```
|
||||
|
||||
Example configuration for specifying [environment](https://www.netlify.com/docs/continuous-deployment/#deploy-contexts):
|
||||
|
||||
```diff
|
||||
pipeline:
|
||||
netlify:
|
||||
image: lucap/drone-netlify
|
||||
token: xxxxx
|
||||
site_id: xxxxxxx-xxxx-xxx-xxxxxxxx
|
||||
- domain: my-custom-domain.com
|
||||
+ environment: production
|
||||
```
|
||||
|
||||
Example configuration to deploy a specific folder or Zip (default current working directory):
|
||||
|
||||
```diff
|
||||
pipeline:
|
||||
netlify:
|
||||
image: lucap/drone-netlify
|
||||
token: xxxxx
|
||||
site_id: xxxxxxx-xxxx-xxx-xxxxxxxx
|
||||
- environment: production
|
||||
+ path: ./dist
|
||||
```
|
||||
|
||||
Example configuration using token from secrets:
|
||||
|
||||
```diff
|
||||
pipeline:
|
||||
netlify:
|
||||
image: lucap/drone-netlify
|
||||
- token: xxxxx
|
||||
site_id: xxxxxxx-xxxx-xxx-xxxxxxxx
|
||||
+ secrets: [ netlify_token ]
|
||||
```
|
||||
|
||||
# Secret Reference
|
||||
|
||||
netlify_token
|
||||
: Netlify [token](https://app.netlify.com/applications)
|
||||
|
||||
# Parameter Reference
|
||||
|
||||
token
|
||||
: `Required` Netlify [token](https://app.netlify.com/applications)
|
||||
|
||||
site_id
|
||||
: `Required` Set the Site ID (or API ID in your Site settings dashboard)
|
||||
|
||||
site_name
|
||||
: Set a Netlify subdomain
|
||||
|
||||
domain
|
||||
: Set your custom domain
|
||||
|
||||
environment
|
||||
: Specify an environment
|
||||
|
||||
path
|
||||
: Path to a folder or zip file to deploy
|
|
@ -0,0 +1,16 @@
|
|||
FROM node:alpine
|
||||
|
||||
LABEL maintainer="Luca Perret <perret.luca@gmail.com>"
|
||||
LABEL org.label-schema.version=latest
|
||||
LABEL org.label-schema.vcs-url="https://github.com/lucaperret/drone-netlify"
|
||||
LABEL org.label-schema.name="drone-netlify"
|
||||
LABEL org.label-schema.description="Deploying to netlify with Drone CI"
|
||||
LABEL org.label-schema.vendor="Luca Perret"
|
||||
LABEL org.label-schema.schema-version="1.0"
|
||||
|
||||
RUN npm install -g netlify-cli
|
||||
|
||||
ADD script.sh /bin/
|
||||
RUN chmod +x /bin/script.sh
|
||||
|
||||
ENTRYPOINT /bin/script.sh
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2018 Luca
|
||||
Copyright (c) 2018 Luca Perret
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# Drone-netlify
|
||||
|
||||
![Netlify logo](netlify.png?raw=true "netlify.com")
|
||||
|
||||
[![Docker Pulls](https://img.shields.io/docker/pulls/lucap/drone-netlify.svg)](https://hub.docker.com/r/lucap/drone-netlify/)
|
||||
[![Image](https://images.microbadger.com/badges/image/lucap/drone-netlify.svg)](https://microbadger.com/images/lucap/drone-netlify "Get your own image badge on microbadger.com")
|
||||
[![GitHub release](https://img.shields.io/github/release/lucaperret/drone-netlify.svg)](https://github.com/lucaperret/drone-netlify/releases/latest)
|
||||
|
||||
Deploying to [Netlify](https://netlify.com) with [Drone](https://drone.io) CI.
|
||||
|
||||
Use case examples:
|
||||
|
||||
- Automatically create staging deployments for pull requests
|
||||
- Automatically deploy and alias upon pushes to master
|
||||
|
||||
## Usage
|
||||
|
||||
For the usage information and a listing of the available options please take a look at [the docs](DOCS.md).
|
||||
|
||||
There are two ways to deploy.
|
||||
|
||||
### From docker
|
||||
|
||||
Deploy the working directory to Netlify.
|
||||
|
||||
```bash
|
||||
docker run --rm \
|
||||
-e PLUGIN_TOKEN=xxxxx \
|
||||
-e PLUGIN_SITE_ID=xxxxxxx-xxxx-xxx-xxxxxxxx \
|
||||
-e PLUGIN_SITE_NAME=netlify-subdomain
|
||||
-v $(pwd):$(pwd) \
|
||||
-w $(pwd) \
|
||||
lucap/drone-netlify
|
||||
```
|
||||
|
||||
### From Drone CI
|
||||
|
||||
```yaml
|
||||
pipeline:
|
||||
netlify:
|
||||
image: lucap/drone-netlify
|
||||
token: xxxxx
|
||||
site_id: xxxxxxx-xxxx-xxx-xxxxxxxx
|
||||
site_name: netlify-subdomain
|
||||
```
|
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,46 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
NETLIFY_SITE=""
|
||||
NETLIFY_DEPLOY_OPTIONS=""
|
||||
NETLIFY_UPDATE_OPTIONS=""
|
||||
|
||||
if [ -n "$PLUGIN_ENVIRONMENT" ]
|
||||
then
|
||||
NETLIFY_DEPLOY_OPTIONS="-e ${PLUGIN_ENVIRONMENT}"
|
||||
NETLIFY_UPDATE_OPTIONS="${NETLIFY_DEPLOY_OPTIONS}"
|
||||
fi
|
||||
|
||||
if [ -n "$PLUGIN_PATH" ]
|
||||
then
|
||||
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} -p ${PLUGIN_PATH}"
|
||||
else
|
||||
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} -p ./"
|
||||
fi
|
||||
|
||||
if [ -n "$PLUGIN_SITE_ID" ] && [ -n "$PLUGIN_TOKEN" ]
|
||||
then
|
||||
NETLIFY_SITE="-t $PLUGIN_TOKEN -s $PLUGIN_SITE_ID"
|
||||
echo "> Deploying on Netlify…" &&
|
||||
netlify $NETLIFY_SITE deploy $NETLIFY_DEPLOY_OPTIONS;
|
||||
else
|
||||
echo "> Error! site_id and token are required"
|
||||
fi
|
||||
|
||||
if [ -n "$PLUGIN_SITE_NAME" ]
|
||||
then
|
||||
NETLIFY_UPDATE_OPTIONS="${NETLIFY_UPDATE_OPTIONS} -n ${PLUGIN_SITE_NAME}"
|
||||
fi
|
||||
|
||||
if [ -n "$PLUGIN_DOMAIN" ]
|
||||
then
|
||||
NETLIFY_UPDATE_OPTIONS="${NETLIFY_UPDATE_OPTIONS} -d ${PLUGIN_DOMAIN}"
|
||||
fi
|
||||
|
||||
if [ -n "$PLUGIN_SITE_NAME" ] || [ -n "$PLUGIN_DOMAIN" ]
|
||||
then
|
||||
echo "> Updating your Netlify site…" &&
|
||||
netlify $NETLIFY_SITE update $NETLIFY_UPDATE_OPTIONS;
|
||||
fi
|
||||
|
||||
echo $'\n'"> Successfully deployed!"$'\n'
|
Loading…
Reference in New Issue