on:
  push:
    tags:
      - v*
  pull_request:
    paths:
      - .github/workflows/update-spec-for-docs.yml
  workflow_dispatch:
name: update spec for docs
concurrency:
  group: docs-${{ github.ref }}
  cancel-in-progress: true
jobs:
  update-spec:
    name: update-spec
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v2
        with:
          go-version: '1.x'
      - name: make generate
        shell: bash
        run: |
          make generate
      # Ensure no files changed.
      - name: Ensure no files changed
        shell: bash
        run: |
          if [[ `git status --porcelain` ]]; then
            echo "Files changed, exiting";
            exit 1;
          else
            # No changes
            echo "No files changed, proceeding";
          fi
      # Checkout the docs repo since we will want to update the files there.
      - uses: actions/checkout@v3
        with:
          repository: 'kittycad/docs'
          path: 'docs'
          token: ${{secrets.PAT_GITHUB}}
      - name: move spec to docs
        shell: bash
        run: |
          rm docs/spec.json || true
          cp spec.json docs/spec.json
      - name: commit the changes in the docs repo
        shell: bash
        run: |
          export VERSION=$(cat VERSION.txt);
          cd docs
          git config --local user.email "github-actions[bot]@users.noreply.github.com"
          git config --local user.name "github-actions[bot]"
          git add .
          git commit -am "YOYO NEW SPEC DOCS ${VERSION}!" || exit 0
          git fetch origin
          git rebase origin/main || exit 0
          export NEW_BRANCH="update-spec-${VERSION}"
          git checkout -b "$NEW_BRANCH"
          git push -f origin "$NEW_BRANCH"
          gh pr create --title "Update lang spec docs for ${VERSION}" \
              --body "Updating the generated docs for go lang" \
              --head "$NEW_BRANCH" \
              --base main || true
        env:
          GITHUB_TOKEN: ${{secrets.PAT_GITHUB}}


