ci/pipeline-dev.yml
---
############################
# SHARED
env-cf: &env-cf
CF_API: https://api.fr.cloud.gov
CF_USERNAME: ((((deploy-env))-cf-username))
CF_PASSWORD: ((((deploy-env))-cf-password))
CF_ORG: gsa-18f-federalist
CF_SPACE: ((deploy-env))
CF_STACK: cflinuxfs4
node-image: &node-image
platform: linux
image_resource:
type: registry-image
source:
aws_access_key_id: ((ecr-aws-key))
aws_secret_access_key: ((ecr-aws-secret))
repository: pages-node-v20
aws_region: us-gov-west-1
tag: latest
cf-image: &cf-image
platform: linux
image_resource:
type: registry-image
source:
aws_access_key_id: ((ecr-aws-key))
aws_secret_access_key: ((ecr-aws-secret))
repository: general-task
aws_region: us-gov-west-1
tag: latest
test: &test
- in_parallel:
- get: redis
params: {save: true}
- task: prepare
config:
<<: *node-image
inputs: [name: src]
outputs: [name: src]
run:
dir: src
path: bash
args:
- -c
- |
yarn --pure-lockfile
yarn eslint
- task: test
privileged: true
file: src/ci/partials/test.yml
############################
# JOBS
jobs:
- name: set-pipeline
plan:
- get: src
resource: pr-((git-branch))
trigger: true
- set_pipeline: builder
file: src/ci/pipeline-dev.yml
instance_vars:
deploy-env: ((deploy-env))
git-branch: ((git-branch))
- name: test-and-deploy-((deploy-env))
plan:
- get: src
resource: pr-((git-branch))
passed: [set-pipeline]
trigger: true
- do: *test
- task: deploy
config:
<<: *cf-image
inputs: [name: src]
run:
dir: src
path: ci/tasks/deploy.sh
params:
<<: *env-cf
CF_APP_NAME: pages-builder-((deploy-env))
CF_MANIFEST: .cloudgov/manifest.yml
CF_VARS_FILE: .cloudgov/vars/pages-((deploy-env)).yml
on_failure:
try:
task: cancel-api-deployment
config:
<<: *cf-image
inputs: [name: src]
run:
dir: src
path: ci/tasks/cancel-deployment.sh
params:
<<: *env-cf
CF_APP_NAME: pages-builder-((deploy-env))
on_failure:
in_parallel:
- put: slack
params:
text: |
:x: FAILED: pages builder deployment on ((deploy-env))
<$ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME|View build details>
channel: ((slack-channel))
username: ((slack-username))
icon_url: ((slack-icon-url))
on_success:
in_parallel:
- put: slack
params:
text: |
:white_check_mark: SUCCESS: Successfully deployed pages builder on ((deploy-env))
<$ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME|View build details>
channel: ((slack-channel))
username: ((slack-username))
icon_url: ((slack-icon-url))
- name: nightly-tasks-((deploy-env))
plan:
- get: src
resource: pr-((git-branch))
passed: [set-pipeline]
- get: nightly
trigger: true
- task: restage
config:
<<: *cf-image
inputs: [name: src]
run:
dir: src
path: ci/tasks/restage.sh
params:
<<: *env-cf
CF_APP_NAME: pages-builder-((deploy-env))
############################
# RESOURCES
resources:
- name: pr-((git-branch))
type: pull-request
check_every: 1m
source:
repository: ((builder-repository-path))
access_token: ((gh-access-token))
base_branch: ((git-branch))
disable_forks: true
ignore_drafts: false
- name: nightly
type: time
source:
start: 12:00 AM
stop: 1:00 AM
location: America/New_York
- name: redis
type: docker-image
source:
repository: redis
tag: 5-alpine
- name: slack
type: slack-notification
source:
url: ((slack-webhook-url))
############################
# RESOURCE TYPES
resource_types:
- name: slack-notification
type: registry-image
source:
aws_access_key_id: ((ecr_aws_key))
aws_secret_access_key: ((ecr_aws_secret))
repository: slack-notification-resource
aws_region: us-gov-west-1
tag: latest
- name: pull-request
type: registry-image
source:
aws_access_key_id: ((ecr_aws_key))
aws_secret_access_key: ((ecr_aws_secret))
repository: github-pr-resource
aws_region: us-gov-west-1
tag: latest
- name: time
type: registry-image
source:
aws_access_key_id: ((ecr_aws_key))
aws_secret_access_key: ((ecr_aws_secret))
repository: time-resource
aws_region: us-gov-west-1
tag: latest
- name: registry-image
type: registry-image
source:
aws_access_key_id: ((ecr_aws_key))
aws_secret_access_key: ((ecr_aws_secret))
repository: registry-image-resource
aws_region: us-gov-west-1
tag: latest