# Copyright 2020 The OpenEBS Authors. All rights reserved. # # 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. name: release on: release: types: - "created" jobs: csi-driver: if: contains(github.ref, 'tags/v') runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set Image Org # sets the default IMAGE_ORG to openebs run: | [ -z "${{ secrets.IMAGE_ORG }}" ] && IMAGE_ORG=openebs || IMAGE_ORG=${{ secrets.IMAGE_ORG}} echo "IMAGE_ORG=${IMAGE_ORG}" >> $GITHUB_ENV - name: Set Tag and Branch run: | TAG="${GITHUB_REF#refs/*/v}" echo "TAG=${TAG}" >> $GITHUB_ENV echo "RELEASE_TAG=${TAG}" >> $GITHUB_ENV BRANCH="v${TAG%.*}.x" echo "BRANCH=${BRANCH}" >> $GITHUB_ENV - name: Set Build Date id: date run: | echo "::set-output name=DATE::$(date -u +'%Y-%m-%dT%H:%M:%S%Z')" - name: Docker meta id: docker_meta uses: crazy-max/ghaction-docker-meta@v1 with: # add each registry to which the image needs to be pushed here images: | ${{ env.IMAGE_ORG }}/zfs-driver quay.io/${{ env.IMAGE_ORG }}/zfs-driver ghcr.io/${{ env.IMAGE_ORG }}/zfs-driver tag-latest: true tag-semver: | {{version}} - name: Print Build info run: | echo "${{ steps.docker_meta.outputs.tags }}" echo "RELEASE TAG: ${RELEASE_TAG}" echo "RELEASE BRANCH: ${BRANCH}" - name: Configure Git run: | git config user.name "GitHub Actions" git config user.email "actions@github.com" - name: Update Operator YAML if: "!github.event.release.prerelease" run: | echo "update the operator yaml with the image tag" sed -i "s/zfs-driver:.*/zfs-driver:${RELEASE_TAG}/" deploy/yamls/zfs-driver.yaml sed -i "s/openebs.io\/version:.*/openebs.io\/version: ${RELEASE_TAG}/" deploy/yamls/zfs-driver.yaml sed -i "s/zfs-driver:.*/zfs-driver:${RELEASE_TAG}/" deploy/zfs-operator.yaml sed -i "s/openebs.io\/version:.*/openebs.io\/version: ${RELEASE_TAG}/" deploy/zfs-operator.yaml sed -i "s/newTag:.*/newTag: ${RELEASE_TAG}/" deploy/yamls/kustomization.yaml git diff --quiet deploy/ || CHANGED=$? if [[ $CHANGED -ne 0 ]]; then echo "Commiting operator yaml changes" git add deploy/ git commit -s -m 'chore(yaml): updating operator yaml with the image tag' git push origin HEAD:"${BRANCH}" fi - name: Set up QEMU uses: docker/setup-qemu-action@v1 with: platforms: all - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 with: version: v0.4.2 - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to Quay uses: docker/login-action@v1 with: registry: quay.io username: ${{ secrets.QUAY_USERNAME }} password: ${{ secrets.QUAY_TOKEN }} - name: Login to GHCR uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build & Push Image uses: docker/build-push-action@v2 with: context: . file: ./buildscripts/zfs-driver/zfs-driver.Dockerfile push: true platforms: linux/amd64, linux/arm64 tags: | ${{ steps.docker_meta.outputs.tags }} build-args: | DBUILD_DATE=${{ steps.date.outputs.DATE }} DBUILD_REPO_URL=https://github.com/openebs/zfs-localpv DBUILD_SITE_URL=https://openebs.io RELEASE_TAG=${{ env.RELEASE_TAG }}