Skip to content

Commit 108cb2a

Browse files
Add codefresh.yml
1 parent a16e208 commit 108cb2a

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

codefresh.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
version: "1.0"
2+
stages:
3+
- clone
4+
- prepare
5+
- build
6+
- test
7+
- release
8+
steps:
9+
10+
main_clone:
11+
title: 'Cloning main repository...'
12+
stage: clone
13+
type: git-clone
14+
repo: ${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}
15+
revision: ${{CF_BRANCH}}
16+
git: ${{GIT_CONTEXT}}
17+
18+
prepare_env_vars:
19+
title: 'Preparing environment variables...'
20+
stage: prepare
21+
image: codefreshio/ci-helpers
22+
working_directory: ${{main_clone}}
23+
commands:
24+
- cf_export SERVICE_VERSION=$(yq r service.yaml version)
25+
- cf_export IMAGE_NAME=codefresh/cf-git-cloner
26+
27+
validate_version:
28+
title: 'Validating the service version...'
29+
stage: prepare
30+
image: codefreshio/ci-helpers
31+
fail_fast: false
32+
commands:
33+
- |
34+
err() { echo -e "\e[31m$@\e[0m" ; return 1 ; }
35+
ok() { echo -e "\e[32m$@\e[0m" ; return 0 ; }
36+
37+
current_version=${SERVICE_VERSION}
38+
last_version=$(git describe --abbrev=0 --tags)
39+
echo "Current version is $current_version, last version - $last_version"
40+
semver-cli greater $current_version $last_version && ok "Version check ok" || err "Please the update the version in the service.yaml file"
41+
42+
build_image:
43+
title: "Building the image..."
44+
stage: build
45+
type: build
46+
working_directory: ${{main_clone}}
47+
dockerfile: ./Dockerfile
48+
image_name: ${{IMAGE_NAME}}
49+
tag: ${{CF_BRANCH_TAG_NORMALIZED}}
50+
51+
approve_existing_version_update:
52+
type: pending-approval
53+
stage: release
54+
title: "Are you sure you want to update already existing image version?"
55+
description: |
56+
"Used for reverting changes without raising the service version"
57+
when:
58+
branch:
59+
only: [master]
60+
steps:
61+
- name: validate_version
62+
on:
63+
- failure
64+
65+
release:
66+
type: parallel
67+
stage: release
68+
steps:
69+
70+
add_git_tag:
71+
title: "Adding Git tag..."
72+
stage: release
73+
image: codefreshio/ci-helpers
74+
commands:
75+
- source /get-token/get-gh-token.sh
76+
- |
77+
curl --fail -X POST -d '{"ref": "refs/tags/${{SERVICE_VERSION}}","sha": "${{CF_REVISION}}"}' -H "Content-Type: application/json" -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}/git/refs
78+
when:
79+
branch:
80+
only: [master]
81+
steps:
82+
- name: validate_version
83+
on:
84+
- success
85+
86+
push_image_prod:
87+
type: push
88+
title: "Pushing the image to the public registry..."
89+
stage: release
90+
image_name: '${{IMAGE_NAME}}'
91+
registry: "${{REGISTRY_INTEGRATION}}"
92+
candidate: "${{build_image}}"
93+
tags:
94+
- "${{SERVICE_VERSION}}"
95+
- "latest"
96+
when:
97+
branch:
98+
only: [master]

0 commit comments

Comments
 (0)