--- name: Gerrit Verify # yamllint disable-line rule:truthy on: workflow_dispatch: inputs: GERRIT_BRANCH: description: "Branch that change is against" required: true type: string GERRIT_CHANGE_ID: description: "The ID for the change" required: true type: string GERRIT_CHANGE_NUMBER: description: "The Gerrit number" required: true type: string GERRIT_CHANGE_URL: description: "URL to the change" required: true type: string GERRIT_EVENT_TYPE: description: "Type of Gerrit event" required: true type: string GERRIT_PATCHSET_NUMBER: description: "The patch number for the change" required: true type: string GERRIT_PATCHSET_REVISION: description: "The revision sha" required: true type: string GERRIT_PROJECT: description: "Project in Gerrit" required: true type: string GERRIT_REFSPEC: description: "Gerrit refspec of change" required: true type: string concurrency: group: ${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }} cancel-in-progress: true jobs: prepare: runs-on: ubuntu-latest steps: - name: Clear votes uses: lfit/gerrit-review-action@v0.5 with: host: ${{ vars.LFIT_GERRIT_SERVER }} username: ${{ vars.LFIT_GERRIT_SSH_USER }} key: ${{ secrets.LFIT_GERRIT_SSH_PRIVKEY_NP }} known_hosts: ${{ vars.LFIT_GERRIT_KNOWN_HOSTS }} gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }} gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }} vote-type: clear - name: Allow replication run: sleep 10s # run pre-commit tox env separately to get use of more parallel processing pre-commit: needs: prepare runs-on: ubuntu-latest steps: - uses: lfit/checkout-gerrit-change-action@v0.2 with: gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }} delay: "0s" - uses: actions/setup-python@v4 with: python-version: "3.11" - name: Run static analysis and format checkers run: pipx run tox -e pre-commit tox: needs: prepare runs-on: ubuntu-latest steps: - uses: lfit/checkout-gerrit-change-action@v0.2 with: gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }} delay: "0s" - uses: actions/setup-python@v4 id: setup-python with: python-version: "3.11" - name: Run tests run: >- TOX_SKIP_ENV=pre-commit pipx run tox vote: if: ${{ always() }} needs: [prepare, pre-commit, tox] runs-on: ubuntu-latest steps: - uses: technote-space/workflow-conclusion-action@v3 - name: Set vote uses: lfit/gerrit-review-action@v0.5 with: host: ${{ vars.LFIT_GERRIT_SERVER }} username: ${{ vars.LFIT_GERRIT_SSH_USER }} key: ${{ secrets.LFIT_GERRIT_SSH_PRIVKEY_NP }} known_hosts: ${{ vars.LFIT_GERRIT_KNOWN_HOSTS }} gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }} gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }} vote-type: ${{ env.WORKFLOW_CONCLUSION }}