From d75e698a58bddd9d1c9f09395d35057d8d2849e0 Mon Sep 17 00:00:00 2001 From: Marc Cataford Date: Sun, 10 Nov 2024 10:11:10 -0500 Subject: [PATCH] ci: run pre-commit on pr + push --- .forgejo/workflows/pull-request.yml | 34 ++++++++++++++++ .forgejo/workflows/push.yml | 61 +++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 .forgejo/workflows/pull-request.yml create mode 100644 .forgejo/workflows/push.yml diff --git a/.forgejo/workflows/pull-request.yml b/.forgejo/workflows/pull-request.yml new file mode 100644 index 0000000..9007898 --- /dev/null +++ b/.forgejo/workflows/pull-request.yml @@ -0,0 +1,34 @@ +name: Pull-Request +on: [pull-request] + +jobs: + static-analysis: + runs-on: runner-latest + steps: + - uses: actions/checkout@v4 + - name: Validate Yaml + run: pipx run pre-commit run check-yaml -a + - name: Validate shell scripts + run: pipx run pre-commit run shellcheck -a + - name: Check formatting + run: pipx run pre-commit run go-fmt -a + - name: Check code patterns + run: pipx run pre-commit run go-vet-mod -a + tests: + runs-on: runner-latest + steps: + - uses: actions/checkout@v4 + - name: Tests + run: pipx run pre-commit run go-test-mod -a + post-run: + runs-on: runner-latest + needs: [static-analysis,tests] + steps: + - name: Export trace + uses: https://forge.karnov.club/marc/opentelemetry-trace-export-forgejo-action@main + with: + otlp-endpoint: "http://otel.home.karnov.club:4318" + forgejo-token: ${{ secrets.GITHUB_TOKEN }} + forgejo-base-url: ${{ env.GITHUB_SERVER_URL }} + run-id: ${{ env.GITHUB_RUN_NUMBER }} + repo-name: ${{ env.GITHUB_REPOSITORY }} diff --git a/.forgejo/workflows/push.yml b/.forgejo/workflows/push.yml new file mode 100644 index 0000000..a9d030b --- /dev/null +++ b/.forgejo/workflows/push.yml @@ -0,0 +1,61 @@ +name: Push +on: + push: + branches: [main] + +jobs: + pre-run: + runs-on: runner-latest + steps: + - uses: https://forge.karnov.club/marc/push-status-to-discord-action@main + with: + webhook-url: ${{secrets.DISCORD_WEBHOOK_URL}} + status: "Started" + init: true + static-analysis: + runs-on: runner-latest + needs: [pre-run] + steps: + - uses: actions/checkout@v4 + - name: Validate Yaml + run: pipx run pre-commit run check-yaml -a + - name: Validate shell scripts + run: pipx run pre-commit run shellcheck -a + - name: Check formatting + run: pipx run pre-commit run go-fmt -a + - name: Check code patterns + run: pipx run pre-commit run go-vet-mod -a + tests: + runs-on: runner-latest + needs: [pre-run] + steps: + - uses: actions/checkout@v4 + - name: Tests + run: pipx run pre-commit run go-test-mod -a + post-run: + runs-on: runner-latest + needs: [static-analysis,tests] + steps: + - name: Export trace + uses: https://forge.karnov.club/marc/opentelemetry-trace-export-forgejo-action@main + with: + otlp-endpoint: "http://otel.home.karnov.club:4318" + forgejo-token: ${{ secrets.GITHUB_TOKEN }} + forgejo-base-url: ${{ env.GITHUB_SERVER_URL }} + run-id: ${{ env.GITHUB_RUN_NUMBER }} + repo-name: ${{ env.GITHUB_REPOSITORY }} + - name: Notify success + uses: https://forge.karnov.club/marc/push-status-to-discord-action@main + if: ${{always() && success()}} + with: + webhook-url: ${{secrets.DISCORD_WEBHOOK_URL}} + status: "Success" + variant: "success" + - name: Notify failure + uses: https://forge.karnov.club/marc/push-status-to-discord-action@main + if: ${{always() && failure()}} + with: + webhook-url: ${{secrets.DISCORD_WEBHOOK_URL}} + status: "Failure" + variant: "failure" +