Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ jobs:

- restore_cache:
keys:
- has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
- has_safe_dates-dependencies-v1-
- has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
- has_safe_dates-dependencies-v1-

- run:
name: Install dependencies
Expand Down Expand Up @@ -65,8 +65,8 @@ jobs:

- restore_cache:
keys:
- has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
- has_safe_dates-dependencies-v1-
- has_safe_dates-dependencies-v1-{{ checksum "has_safe_dates.gemspec" }}
- has_safe_dates-dependencies-v1-

- run:
name: Install dependencies
Expand Down
5 changes: 5 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
inherit_from:
- https://onehq.com/rubocop3_4.yml

AllCops:
SuggestExtensions: false
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.0
3.4.4
8 changes: 4 additions & 4 deletions .tekton/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type: application
version: 0.1.0

dependencies:
- name: ruby-pipelines
alias: delivery
version: "0.2.0-dev.4"
repository: "oci://public.ecr.aws/c6o8b8d1"
- name: ruby-pipelines
alias: delivery
version: "0.2.0-dev.4"
repository: "oci://public.ecr.aws/c6o8b8d1"
211 changes: 101 additions & 110 deletions .tekton/templates/pipeline-gem-delivery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,117 +4,108 @@ metadata:
name: gem-delivery-has-reports
spec:
params:
- name: ci-image-name
description: CI image name
- name: gem-name
description: Gem name
- name: publish
default: 'false'
- name: git-url
description: URL of git repository
- name: git-sha
- name: git-ref
- name: spec-path
description: Path for ruby specs (e.g. "spec/{abilities,apis,commands}")
default: "spec"
- name: ci-image-name
description: CI image name
- name: gem-name
description: Gem name
- name: publish
default: 'false'
- name: git-url
description: URL of git repository
- name: git-sha
- name: git-ref
- name: spec-path
description: Path for ruby specs (e.g. "spec/{abilities,apis,commands}")
default: "spec"

workspaces:
- name: git-source
- name: git-source
tasks:

- name: set-initial-status
taskRef:
kind: Task
name: github-set-status
params:
- name: gitRepoName
value: $(params.gem-name)
- name: gitOrganization
value: OneHQ

# This job gets the source from git
- name: fetch-from-git
taskRef:
name: git-clone
kind: ClusterTask
params:
- name: url
value: $(params.git-url)
- name: refspec
value: "$(params.git-ref):refs/heads/workingcopy"
- name: revision
value: workingcopy
workspaces:
- name: output
workspace: git-source

# This job gets the source from git
- name: build-ci-image
taskRef:
name: buildkit
workspaces:
- name: source
workspace: git-source
params:
- name: TAG
value: $(params.git-sha)
- name: IMAGE
value: $(params.ci-image-name)
runAfter:
- fetch-from-git
# This job gets the source from git
- name: run-specs
taskRef:
name: ruby-run-specs
params:
- name: image
value: $(params.ci-image-name):$(params.git-sha)
- name: prepare-database
value: "false"
- name: spec-path
value: $(params.spec-path)
- name: app
value: $(params.gem-name)

runAfter:
- build-ci-image


- name: run-rubocop
params:
- name: app
value: $(params.gem-name)
- name: image
value: $(params.ci-image-name):$(params.git-sha)
taskRef:
name: ruby-run-rubocop

runAfter:
- build-ci-image

- name: publish-gem
params:
- name: gem-name
value: $(params.gem-name)
- name: image
value: $(params.ci-image-name):$(params.git-sha)
when:
- input: "$(params.publish)"
operator: in
values: ["true"]
taskRef:
name: publish-to-gemfury
runAfter:
- run-rubocop
- run-specs

- name: set-initial-status
taskRef:
kind: Task
name: github-set-status
params:
- name: gitRepoName
value: $(params.gem-name)
- name: gitOrganization
value: OneHQ
# This job gets the source from git
- name: fetch-from-git
taskRef:
name: git-clone
kind: ClusterTask
params:
- name: url
value: $(params.git-url)
- name: refspec
value: "$(params.git-ref):refs/heads/workingcopy"
- name: revision
value: workingcopy
workspaces:
- name: output
workspace: git-source
# This job gets the source from git
- name: build-ci-image
taskRef:
name: buildkit
workspaces:
- name: source
workspace: git-source
params:
- name: TAG
value: $(params.git-sha)
- name: IMAGE
value: $(params.ci-image-name)
runAfter:
- fetch-from-git
# This job gets the source from git
- name: run-specs
taskRef:
name: ruby-run-specs
params:
- name: image
value: $(params.ci-image-name):$(params.git-sha)
- name: prepare-database
value: "false"
- name: spec-path
value: $(params.spec-path)
- name: app
value: $(params.gem-name)
runAfter:
- build-ci-image
- name: run-rubocop
params:
- name: app
value: $(params.gem-name)
- name: image
value: $(params.ci-image-name):$(params.git-sha)
taskRef:
name: ruby-run-rubocop
runAfter:
- build-ci-image
- name: publish-gem
params:
- name: gem-name
value: $(params.gem-name)
- name: image
value: $(params.ci-image-name):$(params.git-sha)
when:
- input: "$(params.publish)"
operator: in
values: [ "true" ]
taskRef:
name: publish-to-gemfury
runAfter:
- run-rubocop
- run-specs
finally:
- name: set-final-status
taskRef:
kind: Task
name: github-set-status
params:
- name: gitRepoName
value: $(params.gem-name)
- name: gitOrganization
value: OneHQ
- name: set-final-status
taskRef:
kind: Task
name: github-set-status
params:
- name: gitRepoName
value: $(params.gem-name)
- name: gitOrganization
value: OneHQ
45 changes: 21 additions & 24 deletions .tekton/templates/pipelinerun.yaml
Original file line number Diff line number Diff line change
@@ -1,40 +1,38 @@
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: {{ .Release.Name }}-{{ .Release.Revision }}
name: { { .Release.Name } }-{{ .Release.Revision }}
annotations:
"helm.sh/hook": post-upgrade,post-install
spec:
serviceAccountName: build-bot
params:
- name: ci-image-name
value: onehq.azurecr.io/{{ .Values.gem }}-ci
- name: gem-name
value: "{{ .Values.gem }}"
- name: publish
value: '{{ .Values.publish }}'
- name: git-url
value: "https://{{ .Values.git.provider }}/{{ .Values.git.organization }}/{{ .Values.git.repository }}.git"
- name: git-sha
value: "{{ .Values.git.sha }}"
- name: git-ref
value: "{{ required "Required .Values.git.ref" .Values.git.ref }}"
- name: rubyVersion
value: "{{ .Values.rubyVersion }}"
workspaces:

- name: ci-image-name
value: onehq.azurecr.io/{{ .Values.gem }}-ci
- name: gem-name
value: "{{ .Values.gem }}"
- name: publish
value: '{{ .Values.publish }}'
- name: git-url
value: "https://{{ .Values.git.provider }}/{{ .Values.git.organization }}/{{ .Values.git.repository }}.git"
- name: git-sha
value: "{{ .Values.git.sha }}"
- name: git-ref
value: "{{ required "Required .Values.git.ref" .Values.git.ref }}"
- name: rubyVersion
value: "{{ .Values.rubyVersion }}"

pipelineRef:
name: gem-delivery-has-reports
timeout: 1h30m0s
podTemplate:
volumes:
- name: oidc-token
projected:
sources:
- serviceAccountToken:
path: oidc-token
expirationSeconds: 1800
- name: oidc-token
projected:
sources:
- serviceAccountToken:
path: oidc-token
expirationSeconds: 1800

workspaces:
- name: git-source
Expand All @@ -46,4 +44,3 @@ spec:
resources:
requests:
storage: 1Gi

Loading