Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ahume/github-deployment-resource
A concourse resource for github deployments
https://github.com/ahume/github-deployment-resource
concourse concourse-resource deployment
Last synced: 4 months ago
JSON representation
A concourse resource for github deployments
- Host: GitHub
- URL: https://github.com/ahume/github-deployment-resource
- Owner: ahume
- License: mit
- Created: 2016-12-01T15:55:50.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-08-11T15:19:43.000Z (over 2 years ago)
- Last Synced: 2024-06-20T12:41:35.253Z (8 months ago)
- Topics: concourse, concourse-resource, deployment
- Language: Go
- Size: 872 KB
- Stars: 10
- Watchers: 3
- Forks: 13
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHub Deployment Resource
Fetches and creates GitHub Deployments and Deployment Statuses. For more about Github Deployments
see the [API documentation](https://developer.github.com/v3/repos/deployments/).## Source Configuration
* `user`: *Required.* The GitHub username or organization name for the
repository that you are deploying.* `repository`: *Required.* The repository name that you are deploying.
* `access_token`: *Required.* Used for accessing deployment data and creating deployments
and deployment statuses.* `github_api_url`: *Optional.* If you use a non-public GitHub deployment then
you can set your API URL here.* `environments`: *Optional.* A list of environments to get versions for.
### Example
``` yaml
resource_types:
- name: github-deployment
type: docker-image
source:
repository: andyhume/github-deployment-resource
tag: "v0.8.0"
resources:
- name: deployment
type: github-deployment
source:
user: BrandwatchLtd
repository: analytics
access_token: abcdef1234567890
`````` yaml
- get: deployment
`````` yaml
- put: deployment
params:
id:
file: deployment/id # path to a file containing the deployment ID
state: success
```## Behavior
### `check`: Check for Deployments
`/check` always returns the single latest deployment. It assumes that any preceding deployments
are invalidated by the existence of a later deployment.### `in`: Fetch Deployment
Fetches the latest deployment and creates the following files:
* `id` containing the `id` of the deployment being fetched.
* `ref` containting the name of the `ref` the deployment is relating to. A branch, tag, or SHA.
* `sha` containg the SHA that was recorded at deployment creation time.
* `task` containing the name of the task for the deployment.
* `environment` containing the name of the environment that is being deployed to.
* `description` containing the description of the deployment
* `deploymentJSON` containing the full JSON of the deployment as received from the API.### `out`: Create a Deployment or DeploymentStatus
Create a new Deployment, or update a given Deployment with a new DeploymentStatus
#### Parameters
* `type`: *Optional.* Either `deployment` or `status`. Defaults to `status`.
##### If type=status
* `id`: *Required.* The ID of the deployment to update with the new status.
NB: You'll most likely want to reference a file with this ID stored in (see below).* `state`: *Required.* The state of the new deployment status.
Must be one of `pending`, `success`, `error`, `inactive`, or `failure`.##### If type=deployment
* `ref`: *Optional.* The ref of the deployment. A branch name, a tag, or SHA.
* `environment`: *Optional.* The name of the environment that is being deployed to.
* `description`: *Optional.* The description of the deployment.
* `payload`: *Optional.* Additional data about the deployment.
* `payload_path`: *Optional.* Path to a file containing additional JSON data to add to the payload.
NB: If there are duplicate keys in data from `payload` and `payload_path`, then the data from
`payload_path` takes precedence.* `task`: *Optional.* The name of the task for the deployment.
##### Reading values from files
All of the above parameters can be used to pass the name of a file to read the applicable value
from. For example...```yaml
- put: deployment
params:
id:
file: path/to/the/id/file
state: success
description:
file: path/to/the/description
```
The above configuration, would read in the `id` and `description` values from files, but use
the `state` value which has been passed in directly as a string.