From b2cc69304c1a199d7093fa19b3a15cfaa4f529f8 Mon Sep 17 00:00:00 2001 From: redxef Date: Tue, 21 Feb 2023 21:53:11 +0100 Subject: [PATCH] Add ci pipeline. --- ci/pipeline.yml | 118 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 ci/pipeline.yml diff --git a/ci/pipeline.yml b/ci/pipeline.yml new file mode 100644 index 0000000..692fe44 --- /dev/null +++ b/ci/pipeline.yml @@ -0,0 +1,118 @@ +--- +resource_types: +- name: oci-image + type: registry-image + source: + repository: redxef/concourse-oci-resource + tag: latest + +resources: +- name: source + type: git + source: + uri: https://gitea.redxef.at/redxef/ovhddns + branch: master + fetch_tags: true +- name: upstream-image + type: registry-image + source: + repository: alpine +- name: image + type: oci-image + source: + repository: redxef/ovhddns + tag: edge + username: ((docker.username)) + password: ((docker.password)) + +jobs: +- name: build-push-edge + plan: + - get: source + trigger: true + - get: upstream-image + trigger: true + - task: compute-docker-tags + config: + platform: linux + image_resource: + type: registry-image + source: + repository: alpine/git + inputs: + - name: source + path: . + outputs: + - name: docker-tags + run: + path: sh + args: + - -c + - | + #!/usr/bin/env sh + git rev-parse --short HEAD > docker-tags/tags.txt + git show-ref --tags | \ + sed -n "/$(git rev-parse HEAD)/ s|$(git rev-parse HEAD).refs/tags/||gp" \ + >> docker-tags/tags.txt + - task: build + privileged: true + config: + platform: linux + image_resource: + type: registry-image + source: + repository: redxef/concourse-buildkit + inputs: + - name: source + path: . + outputs: + - name: build-output + params: + dest: build-output/image.tar + platform: aarch64,arm,i386,ppc64le,s390x,x86_64 + run: + path: build + - put: image + inputs: + - build-output + - docker-tags + params: + image: build-output/image.tar + additional_tags: docker-tags/tags.txt + +- name: test + plan: + - get: image + trigger: true + passed: + - build-push-edge + +- name: tag-latest + plan: + - get: image + trigger: true + passed: + - test + - task: write-latest-file + config: + platform: linux + image_resource: + type: registry-image + source: + repository: alpine + outputs: + - name: latest-tag + run: + path: sh + args: + - -c + - | + #!/usr/bin/env sh + echo latest > latest-tag/tags.txt + - put: image + inputs: + - image + - latest-tag + params: + image: image/image.tar + additional_tags: latest-tag/tags.txt