CI: Transition off of tox for validation 06/72106/1
authorAndrew Grimberg <agrimberg@linuxfoundation.org>
Wed, 13 Sep 2023 19:22:25 +0000 (12:22 -0700)
committerAndrew Grimberg <agrimberg@linuxfoundation.org>
Wed, 13 Sep 2023 19:22:25 +0000 (12:22 -0700)
Signed-off-by: Andrew Grimberg <agrimberg@linuxfoundation.org>
Change-Id: Ie6e7a20d0867b3887eda1a1e0c7342949226e3c7

.github/workflows/gerrit-verify.yaml

index bfaf91a..40d596d 100644 (file)
@@ -47,12 +47,12 @@ concurrency:
   cancel-in-progress: true
 
 jobs:
-  prepare:
+  clear-vote:
     runs-on: ubuntu-latest
     steps:
       - name: Clear votes
         # yamllint disable-line rule:line-length
-        uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf  # v0.4
+        uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf # v0.4
         with:
           host: ${{ vars.LFIT_GERRIT_SERVER }}
           username: ${{ vars.LFIT_GERRIT_SSH_USER }}
@@ -64,13 +64,34 @@ jobs:
       - name: Allow replication
         run: sleep 10s
 
-  tox:
-    needs: prepare
+  actionlint:
+    needs: clear-vote
     runs-on: ubuntu-latest
     steps:
       - name: Gerrit Checkout
         # yamllint disable-line rule:line-length
-        uses: lfit/checkout-gerrit-change-action@57bf0435f739fbbc7ce4cc85c9c3b8a386c6f84b  # v0.6
+        uses: lfit/checkout-gerrit-change-action@57bf0435f739fbbc7ce4cc85c9c3b8a386c6f84b # v0.6
+        with:
+          gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
+          gerrit-project: ${{ inputs.GERRIT_PROJECT }}
+          gerrit-url: ${{ vars.GERRIT_URL }}
+          delay: "0s"
+      - name: Download actionlint
+        id: get_actionlint
+        # yamllint disable-line rule:line-length
+        run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
+        shell: bash
+      - name: Check workflow files
+        run: ${{ steps.get_actionlint.outputs.executable }} -color
+        shell: bash
+
+  license:
+    needs: clear-vote
+    runs-on: ubuntu-latest
+    steps:
+      - name: Gerrit Checkout
+        # yamllint disable-line rule:line-length
+        uses: lfit/checkout-gerrit-change-action@57bf0435f739fbbc7ce4cc85c9c3b8a386c6f84b # v0.6
         with:
           gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
           gerrit-project: ${{ inputs.GERRIT_PROJECT }}
@@ -81,20 +102,42 @@ jobs:
         id: setup-python
         with:
           python-version: "3.11"
-      - name: Run tests
+      - name: Install lftools
+        run: pip install lftools
+      - name: Run license check
         run: >-
-          TOX_SKIP_ENV=pre-commit pipx run tox
+          lftools license check-dir -r '.+' shell
+
+  pre-commit:
+    needs: clear-vote
+    runs-on: ubuntu-latest
+    steps:
+      - name: Gerrit Checkout
+        # yamllint disable-line rule:line-length
+        uses: lfit/checkout-gerrit-change-action@57bf0435f739fbbc7ce4cc85c9c3b8a386c6f84b # v0.6
+        with:
+          gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
+          gerrit-project: ${{ inputs.GERRIT_PROJECT }}
+          gerrit-url: ${{ vars.GERRIT_URL }}
+          delay: "0s"
+      - name: Configure Python
+        uses: actions/setup-python@v4
+        with:
+          python-version: "3.11"
+      - name: Run static analysis and format checkers
+        # yamllint disable-line rule:line-length
+        run: SKIP=actionlint pipx run pre-commit run --all-files --show-diff-on-failure
 
   vote:
     if: ${{ always() }}
-    needs: [prepare, tox]
+    needs: [clear-vote, actionlint, license, pre-commit]
     runs-on: ubuntu-latest
     steps:
       - name: Get workflow conclusion
         uses: technote-space/workflow-conclusion-action@v3
       - name: Set vote
         # yamllint disable-line rule:line-length
-        uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf  # v0.4
+        uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf # v0.4
         with:
           host: ${{ vars.LFIT_GERRIT_SERVER }}
           username: ${{ vars.LFIT_GERRIT_SSH_USER }}