Browse Source

Update readme

master
Luciano Silva 8 years ago
parent
commit
2eb2b2aa73
  1. 12
      NOTICE.md
  2. 50
      README.md
  3. 18
      assets/out
  4. 14
      pipeline.yml
  5. 47
      test/test-out.sh

12
NOTICE.md

@ -0,0 +1,12 @@
Copyright 2017 Luciano Silva
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.

50
README.md

@ -1,5 +1,49 @@
# Concourse CURL Resource
# File URL Resource
Retrieves artifacts from a repository using curl commands.
Downloads and tracks the update of a single URL-addressable file.
This is a useful resource for pipeline development time, while a required artifact is temporarily available from a URL-addressable location, until it is moved to a more robust file management repository such as [git](https://github.com/concourse/git-resource) or [S3](https://github.com/concourse/s3-resource).
##Work in progress - stay tuned
## Source Configuration
* `url`: *Required.* The url location of the file. It has to be publicly available, no user authentication supported in v0.0.1.
* `filename`: *Optional.* The name of the file for the downloaded artifact to be save as. If not provided, the file will be saved using the full url string as its name.
* `skip_ssl_verification`: *Optional.* Skips ssl verification if defined as `true`. Default is `false`.
### Example
Resource configuration:
``` yaml
resource_types:
- name: file-url
type: docker-image
source:
repository: pivotalservices/concourse-curl-resource
tag: latest
resources:
- name: my-file
type: file-url
source:
url: https://raw.githubusercontent.com/pivotalservices/concourse-curl-resource/master/test/data/pivotal-1.0.0.txt
filename: pivotal-1.0.0.txt
```
## Behavior
### `check`: Check for the latest version of the file.
The resource uses `curl` under-the-covers to post a GET request and retrieve the HTTP header info for the file URL provided.
If field `Last-Modified` is returned as part of the HTTP response header, then the resource will use that to build a version number timestamp with format "YYYYMMDDHHMMSS".
Otherwise, the timestamp string will be built using the request's current time, which will result in a new version being returned every time `check` is executed for that file.
### `in`: Download the latest version of the file.
Downloads the latest version of the file issuing a `curl` command under-the-covers.
### `out`: Not supported.
Write actions are not supported by this resource at this moment.

18
assets/out

@ -5,19 +5,5 @@ set -e
exec 3>&1 # make stdout available as fd 3 for the result exec 3>&1 # make stdout available as fd 3 for the result
exec 1>&2 # redirect all output to stderr for logging exec 1>&2 # redirect all output to stderr for logging
source $(dirname $0)/common.sh
source=$1
if [ -z "$source" ]; then
echo "usage: $0 <path/to/source>"
exit 1
fi
cd $source
payload=$(mktemp $TMPDIR/artifactory-resource-request.XXXXXX)
cat > $payload <&0
cat $payload
echo "OUT action not supported by this resource"
exit 1

14
pipeline.yml

@ -1,21 +1,21 @@
resource_types: resource_types:
- name: curl
- name: file-url
type: docker-image type: docker-image
source: source:
repository: pivotalservices/concourse-curl-resource repository: pivotalservices/concourse-curl-resource
tag: latest tag: latest
resources: resources:
- name: single-file
type: curl
- name: my-file
type: file-url
source: source:
url: https://s3-us-west-1.amazonaws.com/lsilva-bpws/PCF_usage/pcf-sandbox-usage-from-2016-09-01-to-2016-09-30_1475771124.json
filename: pcf-sandbox.json
url: https://raw.githubusercontent.com/pivotalservices/concourse-curl-resource/master/test/data/pivotal-1.0.0.txt
filename: pivotal-1.0.0.txt
jobs: jobs:
- name: run-and-get-file - name: run-and-get-file
plan: plan:
- get: single-file
- get: my-file
- task: run-and-get-file - task: run-and-get-file
config: config:
platform: linux platform: linux
@ -25,7 +25,7 @@ jobs:
repository: ubuntu repository: ubuntu
tag: "latest" tag: "latest"
inputs: inputs:
- name: single-file
- name: my-file
run: run:
path: sh path: sh
args: args:

47
test/test-out.sh

@ -4,49 +4,4 @@ set -e
source $(dirname $0)/helpers.sh source $(dirname $0)/helpers.sh
it_can_deploy_release_to_artifactory() {
# local local_ip=$(find_docker_host_ip)
#local_ip=localhost
artifactory_ip=$ART_IP
TMPDIR=/tmp
local src=$(mktemp -d $TMPDIR/in-src.XXXXXX)
local endpoint="http://${artifactory_ip}:8081/artifactory"
local regex="ecd-front-(?<version>.*).tar.gz"
local folder="/generic/ecd-front"
local version="20161109222826"
local username="${ART_USER}"
local password="${ART_PWD}"
local repository="/generic/ecd-front"
local file="ecd-front-(?<version>.*).tar.gz"
local version=20161109222826
deploy_without_credentials $endpoint $regex $repository $file $version $src
}
it_can_deploy_release_to_artifactory_with_credentials() {
artifactory_ip=$ART_IP
TMPDIR=/tmp
local src=$(mktemp -d $TMPDIR/in-src.XXXXXX)
local endpoint="http://${artifactory_ip}:8081/artifactory"
local regex="ecd-front-(?<version>.*).tar.gz"
local username="${ART_USER}"
local password="${ART_PWD}"
local repository="/generic/ecd-front"
local file="ecd-front-(?<version>.*).tar.gz"
local version=20161109222826
deploy_with_credentials $endpoint $regex $repository $file $version $src $username $password
}
run it_can_deploy_release_to_artifactory_with_credentials
run it_can_deploy_release_to_artifactory
exit 1
Loading…
Cancel
Save