name: Go generate check on: workflow_dispatch: push: branches: - main - "release/**" pull_request: jobs: go-generate: runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: path: constellation ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }} token: ${{ !github.event.pull_request.head.repo.fork && secrets.CI_COMMIT_PUSH_PR || '' }} - name: Setup Go uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0 with: go-version: "1.20.2" cache: true cache-dependency-path: constellation/go.mod - name: Install docgen uses: ./constellation/.github/actions/install_docgen - name: Install stringer shell: bash run: go install golang.org/x/tools/cmd/stringer@7db99dd12661adab9ce92e9b9633b6ef90867fad # v0.5.0 - name: Get Go submodules id: submods shell: bash working-directory: constellation run: | mods=$(go list -f '{{.Dir}}' -m | xargs) echo "Found mods: $mods" echo "submods=${mods}" >> "$GITHUB_OUTPUT" - name: Go generate check id: generatecheck shell: bash working-directory: constellation run: | mods="${{ steps.submods.outputs.submods }}" for mod in $mods; do go generate "$mod/..." done git diff --exit-code - name: Push changes on renovate branch if: | failure() && (steps.generatecheck.conclusion == 'failure') && startsWith(github.head_ref, 'renovate/') && !github.event.pull_request.head.repo.fork shell: bash working-directory: constellation run: | diff_dirs=$(git diff --name-only) if [[ "${diff_dirs}" == "internal/versions/versions.go" ]]; then echo "internal/versions/versions.go is the only changed file, so we can push the changes." git config --global user.name "edgelessci" git config --global user.email "edgelessci@users.noreply.github.com" git commit -am "deps: update versions.go" git push fi