From 8588d1c49c52b0c0a794b683d26900c0aa53c9d2 Mon Sep 17 00:00:00 2001 From: hackerman <3372410+aeneasr@users.noreply.github.com> Date: Mon, 6 Jan 2020 14:22:31 +0100 Subject: [PATCH] Promote from git tag (#2) --- .circleci/config.yml | 30 ++++++++++++++++++++--- src/sdk.yml | 57 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 src/sdk.yml diff --git a/.circleci/config.yml b/.circleci/config.yml index c21ca59..28246be 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,13 +2,37 @@ version: 2.1 description: Creates and updates the CHANGELOG.md file orbs: - orb-tools: circleci/orb-tools@2.0.0 + orb-tools: circleci/orb-tools@9.0.0 workflows: - btd: + sdk: + jobs: + - + orb-tools/publish: + orb-path: src/sdk.yml + orb-ref: ory/sdk@dev:${CIRCLE_BRANCH} + publish-token-variable: CIRCLECI_DEV_API_TOKEN + validate: true + - orb-tools/dev-promote-prod-from-git-tag: + orb-name: ory/sdk + add-pr-comment: false + filters: + tags: + only: /.*/ + branches: + ignore: /.*/ + changelog: jobs: - orb-tools/publish: orb-path: src/changelog.yml orb-ref: ory/changelog@dev:${CIRCLE_BRANCH} - publish-token-variable: "$CIRCLECI_DEV_API_TOKEN" validate: true + publish-token-variable: CIRCLECI_DEV_API_TOKEN + - orb-tools/dev-promote-prod-from-git-tag: + orb-name: ory/changelog + add-pr-comment: false + filters: + tags: + only: /.*/ + branches: + ignore: /.*/ diff --git a/src/sdk.yml b/src/sdk.yml new file mode 100644 index 0000000..5de103e --- /dev/null +++ b/src/sdk.yml @@ -0,0 +1,57 @@ +version: 2.1 +description: Generates the Go SDK + +orbs: + sdk: + executors: + changelog: + docker: + - + image: circleci/go:1.13 + jobs: + generate: + parameters: + gitemail: + description: The git committer's email + type: string + default: aeneas@ory.sh + gitusername: + description: The git committer's username + type: string + default: aeneasr + gitauthtoken: + description: A GitHub API Token + type: env_var_name + default: GITHUB_TOKEN + executor: changelog + steps: + - run: git config --global push.default matching + - checkout + - run: | + if [ "$(git show -s --format=%B | head -n 1)" != "Update SDK" ]]; then + echo "Generating SDK" + go install github.com/go-swagger/go-swagger/cmd/swagger github.com/ory/x/tools/listx github.com/sqs/goreturns + swagger generate spec -m -o ./docs/api.swagger.json -x sdk + swagger validate ./docs/api.swagger.json" + rm -rf ./sdk/go/$CIRCLE_PROJECT_REPONAME + swagger generate client -f ./docs/api.swagger.json -t sdk/go/$CIRCLE_PROJECT_REPONAME -A "Ory_$(tr '[:lower:]' '[:upper:]' <<< "${CIRCLE_PROJECT_REPONAME:0:1}")${CIRCLE_PROJECT_REPONAME:1})" + goreturns -w -local github.com/ory $(listx .) + git config --global user.email "<>" + git config --global user.name "<>" + git commit -m "Update SDK" -a || true + git push origin || true + else + echo "Skipping SDK generation" + fi + +examples: + sdk: + description: Generate and commit the SDK + usage: + version: 2.1 + orbs: + foo: ory/sdk@0.0.0 + workflows: + generate: + jobs: + - sdk/generate