From 03bfeaae61e58d492fd8ed6cec7d82032fac340f Mon Sep 17 00:00:00 2001 From: Kartik Date: Fri, 19 Apr 2024 16:41:42 +0530 Subject: [PATCH] chore: add PR testing workflows --- .github/CODEOWNERS | 1 + .github/PULL_REQUEST_TEMPLATE.md | 23 ++++++ .github/workflows/ci_check_pr.yaml | 111 +++++++++++++++++++++++++++ .github/workflows/ci_merge_main.yaml | 0 4 files changed, 135 insertions(+) create mode 100644 .github/CODEOWNERS create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/ci_check_pr.yaml create mode 100644 .github/workflows/ci_merge_main.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..52ede050 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @juspay/sdk-backend diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..9b28183c --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,23 @@ +## Problem +Describe the problem you are trying to solve here + +## Solution +Provide a brief summary of your solution so that reviewers can understand your code + +## Environment variable changes + +What ENVs need to be added or changed + +## Pre-deployment activity +Things needed to be done before deploying this change (if any) + +## Post-deployment activity +Things needed to be done after deploying this change (if any) + +## API changes +| Endpoint | Method | Request body | Response Body | +| ------------- |:-------------:| -----:| ----------------:| +| API | GET/POST, etc | request | response | + +## Possible Issues in the future +Describe any possible issues that could occur because of this change \ No newline at end of file diff --git a/.github/workflows/ci_check_pr.yaml b/.github/workflows/ci_check_pr.yaml new file mode 100644 index 00000000..cbd5ba21 --- /dev/null +++ b/.github/workflows/ci_check_pr.yaml @@ -0,0 +1,111 @@ +name: CI-pr + +on: [pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + # Disable incremental compilation. + # + # Incremental compilation is useful as part of an edit-build-test-edit cycle, + # as it lets the compiler avoid recompiling code that hasn't changed. However, + # on CI, we're not making small edits; we're almost always building the entire + # project from scratch. Thus, incremental compilation on CI actually + # introduces *additional* overhead to support making future builds + # faster...but no future builds will ever occur in any given CI environment. + # + # See https://matklad.github.io/2021/09/04/fast-rust-builds.html#ci-workflow + # for details. + CARGO_INCREMENTAL: 0 + # Allow more retries for network requests in cargo (downloading crates) and + # rustup (installing toolchains). This should help to reduce flaky CI failures + # from transient network timeouts or other issues. + CARGO_NET_RETRY: 10 + RUSTUP_MAX_RETRIES: 10 + # Don't emit giant backtraces in the CI logs. + RUST_BACKTRACE: short + # Use cargo's sparse index protocol + CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse + +jobs: + formatting: + name: Check formatting + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + + - name: Install Rust + uses: dtolnay/rust-toolchain@master + with: + toolchain: 1.76.0 + targets: wasm32-unknown-unknown + components: rustfmt, clippy + + - name: Check formatting + shell: bash + run: cargo fmt --all --check + + - name: Check conventional commit + uses: cocogitto/cocogitto-action@v3 + id: check + with: + check-latest-tag-only: true + + test: + name: Testing + runs-on: ubuntu-latest + services: + postgres: + image: postgres:12-alpine + ports: + - 5432:5432 + env: + POSTGRES_PASSWORD: "docker" + POSTGRES_DB: "config" + restart: on-failure + + localstack: + image: localstack/localstack:1.3.0 + ports: + - 4510-4559:4510-4559 # external service port range + - 4566:4566 # LocalStack Edge Proxy + - 4571:4571 + env: + LOCALSTACK_SERVICES: kms + AWS_DEFAULT_REGION: ap-south-1 + EDGE_PORT: 4566 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + + - name: Install Rust + uses: dtolnay/rust-toolchain@master + with: + toolchain: 1.76.0 + targets: wasm32-unknown-unknown + components: rustfmt, clippy + + - name: install node + uses: actions/setup-node@v4 + with: + node_version: 18.19.0 + + - name: run tests + shell: bash + run: | + export DB_PASSWORD=`./docker-compose/localstack/get_db_password.sh` && echo $$DB_PASSWORD + make ci-test + env: + AWS_ACCESS_KEY_ID: test + AWS_SECRET_ACCESS_KEY: test + AWS_SESSION_TOKEN: test + AWS_REGION: ap-south-1 diff --git a/.github/workflows/ci_merge_main.yaml b/.github/workflows/ci_merge_main.yaml new file mode 100644 index 00000000..e69de29b