From fa845cba41fd682ecd40b78bfda8c71cb4698603 Mon Sep 17 00:00:00 2001 From: Toan Nguyen Date: Tue, 16 Apr 2024 00:33:27 +0700 Subject: [PATCH] add release workflow --- .github/workflows/release.yaml | 65 +++++++++++++++++++ .../connector-metadata.yaml | 2 +- scripts/build-manifest.sh | 18 +++++ 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yaml rename {.hasura-connector => connector-definition/.hasura-connector}/connector-metadata.yaml (88%) create mode 100755 scripts/build-manifest.sh diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..e24025a --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,65 @@ +name: Release container definition +on: + push: + # tags: + # - "*" + +env: + DOCKER_REGISTRY: ghcr.io + DOCKER_IMAGE_NAME: hasura/ndc-stripe + +jobs: + tests: + uses: ./.github/workflows/test.yaml + + release-image: + name: Release ndc-stripe image + runs-on: ubuntu-latest + needs: [tests] + steps: + - uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{ env.DOCKER_REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Get version from tag + id: get-version + run: | + echo "tagged_version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + shell: bash + + - name: Extract metadata (tags, labels) for Docker + id: docker-metadata + uses: docker/metadata-action@v5 + with: + images: ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_IMAGE_NAME }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + push: true + tags: ${{ steps.docker-metadata.outputs.tags }} + labels: ${{ steps.docker-metadata.outputs.labels }} + + - name: Build connector definition + run: | + ./scripts/build-manifest.sh + env: + VERSION: ${{ steps.get-version.outputs.tagged_version }} + + - name: create a draft release + uses: ncipollo/release-action@v1 + with: + draft: true + tag: ${{ steps.get-version.outputs.tagged_version }} + artifacts: release/* diff --git a/.hasura-connector/connector-metadata.yaml b/connector-definition/.hasura-connector/connector-metadata.yaml similarity index 88% rename from .hasura-connector/connector-metadata.yaml rename to connector-definition/.hasura-connector/connector-metadata.yaml index 4b20962..c06123e 100644 --- a/.hasura-connector/connector-metadata.yaml +++ b/connector-definition/.hasura-connector/connector-metadata.yaml @@ -1,6 +1,6 @@ packagingDefinition: type: PrebuiltDockerImage - dockerImage: ghcr.io/hasura/ndc-stripe:v0.1.1 + dockerImage: ghcr.io/hasura/ndc-stripe:{{VERSION}} supportedEnvironmentVariables: - STRIPE_SERVER_URL - STRIPE_BASIC_AUTH_TOKEN diff --git a/scripts/build-manifest.sh b/scripts/build-manifest.sh new file mode 100755 index 0000000..f318dfd --- /dev/null +++ b/scripts/build-manifest.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -evo pipefail + +REF=$(git rev-parse --short HEAD) +VERSION=${VERSION:-$REF} +BUILD_DIR=/tmp/ndc-stripe +ROOT="$(pwd)" + +rm -rf $BUILD_DIR +mkdir -p $BUILD_DIR + +cp -r connector-definition $BUILD_DIR +sed -i "s/{{VERSION}}/$VERSION/g" $BUILD_DIR/connector-definition/.hasura-connector/connector-metadata.yaml + +mkdir -p "${ROOT}/release" +tar -czvf "${ROOT}/release/connector-definition.tgz" --directory $BUILD_DIR/connector-definition . +echo "checksum of connector-definition.tgz:" +sha256sum "${ROOT}/release/connector-definition.tgz" \ No newline at end of file