LogoLogo
PlatformUse CasesCommunityBlog
1.2
1.2
  • 🏠Home
  • 🍩PLATFORM
    • Architecture
    • Modules
      • Program & Beneficiary Management System
        • Program Management
        • Program Disbursement Cycles
        • Beneficiary Management
        • ID Verification
        • Beneficiary Registry
        • Eligibility
          • Proxy Means Test
        • Deduplication
        • Enrolment
        • Entitlement
        • Disbursement
          • In-kind Transfer
          • Digital Cash Transfer
          • Voucher
        • Self Service Portal
        • Document Management
        • Multi-tenancy
        • Notifications
        • Accounting
        • Administration
          • Multi-tenancy
          • RBAC
          • i18n
      • Social Registry
      • Registration Tool Kit
        • ODK Collection App
      • SPAR
      • G2P Cash Transfer Bridge
        • File-based Payment Backend
      • 4Sure Verifier
    • Monitoring and Reporting
    • Logging
    • Privacy and Security
      • Key Manager
      • Key Manager Architecture
    • Interoperability
    • Integrations
      • OpenG2P eSignet Integration
      • OpenG2P M-Pesa Integration
      • OpenG2P Mojaloop Integration
    • Technology Stack
    • Reference
      • ↔️API
    • Releases
      • 1.1.0
        • Release Notes
    • License
      • OpenG2P Support Policy
    • FAQ
  • ⛎USE CASES
    • Use Cases
      • Immediate Assistance On Demand
      • Registration using Self Service Portal
      • Registration in Low Connectivity Areas
      • Service Provider Reimbursement
  • 🗄️DEPLOYMENT
    • Deployment Architecture
    • Infrastructure Setup
      • Hardware Requirements
      • Wireguard Server Setup
      • Rancher Setup
      • NFS Server Setup
      • OpenG2P K8s Cluster Setup
      • Loadbalancer Setup
    • External Components Setup
      • PostgreSQL Server Deployment
      • Keycloak Deployment
      • Minio Deployment
      • ODK Central Deployment
      • Kafka Deployment
      • Logging & OpenSearch Deployment
      • Keymanager Deployment
      • eSignet Deployment
    • OpenG2P Modules Deployment
      • PBMS Deployment
        • Post Install Configuration
      • Social Registry Deployment
      • GCTB Deployment
      • SPAR Deployment
        • SPAR Post Installation Configuration
      • Reporting Deployment
    • Deployment Guides
      • Giving Access to Users
      • Packaging OpenG2P Docker
      • SSL Certificates using Letsencrypt
      • Install WireGuard Client on Desktop/Laptop
      • Install WireGuard Client on Android Device
      • Make Environment Publicly Accessible using AWS LB Configuration
  • 👨‍💻DEVELOPER ZONE
    • Getting Started
      • Installing OpenG2P On Linux
    • Repositories
      • openg2p-mts
        • MTS Connector
        • OpenG2P Registry MTS Connector
      • openg2p-documents
      • openg2p-formio
        • G2P Formio
      • openg2p-registry
        • G2P Registry: Rest API Extension Demo
        • G2P Registry: Additional Info REST API
        • G2P Registry: Bank Details Rest API
        • G2P Registry: Additional Info
        • G2P Registry:Bank Details
        • G2P Registry:Membership
        • G2P Registry: Group
        • G2P Registry: Individual
        • G2P Registry: Base
        • G2P Registry: Rest API
      • openg2p-program
        • OpenG2P Program Payments: In Files
        • OpenG2P Program: Documents
        • OpenG2P Program Payment (Payment Hub EE)
        • G2P Programs: REST API
        • G2P Program : Program Registrant Info Rest API
        • OpenG2P Entitlement: Differential
        • G2P Program Payment Manager: Payment Interoperability Layer
        • G2P Program Approval
        • OpenG2P Entitlement Voucher
        • OpenG2P Program Assessment
        • OpenG2P Program Reimbursement
        • OpenG2P Program Registrant Info
        • OpenG2P Program Payment Cash
        • OpenG2P Program Payment Simple Mpesa Payment Manager
        • OpenG2P Programs Cycleless
        • OpenG2P Programs Autoenrol
        • OpenG2P Entitlement In-kind
        • G2P SelfServicePortal
        • OpenG2P Program Payment: G2P Connect Payment Manager
        • G2P Notifications: Wiserv SMS Service Provider
        • G2P: Proxy Means Test
      • openg2p-testing
      • openg2p-fastapi-template
      • openg2p-fastapi-common
        • OpenG2P FastAPI Common
        • OpenG2P FastAPI Auth
        • OpenG2P Common: G2P Connect ID Mapper
      • social-payments-account-registry
      • g2p-cash-transfer-bridge
      • openg2p-deployment
      • openg2p-documentation
      • openg2p-helm
      • openg2p-theme
      • openg2p-portal-api
      • openg2p-mosip
      • openg2p-notifications
      • openg2p-packaging
      • openg2p-importers
        • G2P ODK Importer
      • openg2p-documents
      • openg2p-reporting
      • openg2p-self-service-portal
      • openg2p-portal
      • odoo-json-field
      • spar-ui
      • openg2p-auth
      • openg2p-voucher-scanner-app
      • openg2p-security
      • openg2p-mts
      • server-auth
      • openg2p-data
      • openg2p-esignet
      • spar-load-test
      • 4sure
    • Testing
      • Test Workflow
      • Automation Framework
  • 👩‍💻COMMUNITY
    • Contributing
    • Code of Conduct
  • 📔USER GUIDES
    • Platform Guides
      • Registration
        • Self Register Online
        • ODK
          • Create a Project for a Program
          • Create a Form
          • Upload a Form
          • Upload revised Form
          • Test a Form
          • Publish a Form
          • Provide Form Access to Field Agent
          • Download Form on ODK Collect
          • Delete a Form
          • Register Offline
        • ODK Importer
          • Customize the ODK Importer Configuration based on the ODK Form Fields
      • Authentication
        • Integrate with MOSIP e-Signet
      • Deduplication
        • Deduplicate Registrants
      • Eligibility and Program Enrollment
        • Enrol Registrants into Program
        • Program
          • Create Manager Type
            • Create Eligibility Manager Types
              • Create Default Eligibility Manager
              • Create ID Document Eligibility Manager
              • Create Phone Number Eligibility Manager
            • Create Deduplication Manager Types
              • Create ID Deduplication Manager
              • Create Phone Number Deduplication
            • Create Notification Manager Types
              • Create SMS Notification Manager
              • Create Email Notification Manager
              • Create Fast2SMS Notification Manager
            • Create Entitlement Manager Type
              • Create Default Entitlement Manager
              • Create Voucher Entitlement Manager
            • Create Payment Manager Types
              • Create Payment Hub EE Payment Manager
              • Create Payment Interoperability Layer Payment Manager
              • Create Default Payment Manager
              • Create Cash Payment Manager
              • Create File Payment Manager
          • Create Program
          • Map Self-Service Portal Form
          • Create Eligibility Manager under Program
          • Create Deduplication Manager under Program
          • Create Notification Manager under Program
          • Configure Program Manager under Program
          • Create Entitlement Voucher Template
        • Configuration
          • Configure Proxy Means Test
          • Configure ID Types
          • Configure Entitlement Manager under Program
          • Configure Payment Manager in Program
        • Approval
          • Create and Approve Program Cycle
          • Multi-Stage Approval
        • MTS Connector
          • Create MTS Connector
            • Create ODK MTS Connector
            • Create OpenG2P Registry MTS Connector
        • Settings
          • Create User and Assign Role
        • Website
          • Create Self-Service Portal Form
      • Notification
        • Send Notifications to Individual Registrants
        • Prepare and Send Payment
      • Entitlement
        • Install SmartScanner App
      • Cash Transfer
        • Reimbursement
          • Submit Reimbursement Using the Service Provider Portal
          • Reimburse the service provider
      • Accounting and Reporting
      • SPAR
        • Self Update ID with Financial Address information
        • Admin Guide to Link ID with Financial Address information
      • 4Sure
        • Verify Digital Credentials using 4Sure
        • Verify and Populate the form in ODK Collect using 4Sure
    • Documentation Guides
      • Documentation Guidelines
      • OpenG2P Module Doc Template
  • BLOG
    • Articles
      • OpenG2P and SDG Goals
      • OpenG2P - A Building Block for DPI
    • Case Studies
Powered by GitBook
LogoLogo

Copyright © 2024 OpenG2P. This work is licensed under Creative Commons Attribution International LicenseCC-BY-4.0 unless otherwise noted.

On this page
  • Overview
  • Purpose
  • Functionality
  • Build and Test:
  • Notification:
  • Generate and Deploy Allure Report:
  • How It Works
  • Configuration and Secrets
  • Configuration File
  • Required Secrets
  • Considerations for Developers/DevOps
  • Future Improvements
  1. DEVELOPER ZONE
  2. Testing

Test Workflow

Overview

The "Test Workflow" automates the sanity test for every new push or pull on the specified branch and generates the report and deploys the report on GitHub pages. This workflow is designed to ensure a streamlined and consistent testing pipeline. which further can be integrated with the build and deploy workflow to complete the CI/CD pipeline.

Purpose

Here are the primary objectives and benefits of using this workflow:

  • Ensures that the codebase is continuously integrated, built, and tested whenever changes are pushed to the 'develop' branch or when pull requests are created or updated.

  • Executes a series of automated tests, including sanity tests, using Maven. This ensures that the Java project functions correctly and does not introduce new bugs with each code change.

  • Sends Slack notifications to designated channels on both successful and failed workflow runs.

  • Installs and uses Allure to generate detailed test reports. The generated Allure report provides insights into test results which helps understand the quality of the codebase.

  • Deploys the Allure report to GitHub Pages, making it accessible and shareable.

  • Provides the flexibility for the teams to manually trigger the workflow when needed, offering control over when certain processes are executed.

Functionality

The workflow performs the following key tasks:

Build and Test:

  • Sets up the latest version of Ubuntu as the execution environment.

  • Configures Java Development Kit (JDK) version 17.

  • Caches Maven dependencies to improve build efficiency.

  • Installs WireGuard and configures it for accessing specific URLs.

  • Sets up Google Chrome browser and Chromedriver for hosting testing environment

  • Builds the Java project using Maven, skipping tests initially.

  • Runs sanity tests using the command mvn clean test which runs the sanity test suite.

Notification:

  • Sends a Slack notification on successful workflow execution, providing information about the actor and commit ID.

  • Sends a Slack notification on workflow failure, including details about the actor, commit ID, and the failed step.

Generate and Deploy Allure Report:

  • Installs Allure to generate detailed test reports.

  • Generates an Allure report for the test results.

  • Deploys the generated Allure report to GitHub Pages which can be accessed for result analysis.

How It Works

The workflow is triggered in the following ways:

  • Push to 'develop' Branch: The workflow runs automatically when code is pushed to the 'develop' branch.

  • Pull Request to 'develop' Branch: It also runs when a pull request is opened or updated against the 'develop' branch.

  • Manual Workflow Dispatch: Developers or DevOps teams can manually trigger the workflow using GitHub Actions' workflow dispatch feature.

Configuration and Secrets

Configuration File

The workflow is defined in a YAML file (.github/workflows/ui-sanity.yml). Developers can customize this file to adjust build and test configurations.

Required Secrets

Ensure the following secrets are configured in the GitHub repository settings:

  • SLACK_INCOMING_WEBHOOK: Slack webhook URL for notifications.

  • GIT_TOKEN: GitHub token for deploying the Allure report to GitHub Pages.

Considerations for Developers/DevOps

  • Dependency Versions: The workflow uses specific versions of actions and tools (e.g., Java 17, Allure 2.18.1).

  • WireGuard Setup: Setup should reviewed and customized for accessing specific URLs based on project requirements.

  • GitHub Pages Deployment: Developers need to ensure the presence of a GitHub token (GIT_TOKEN) with the necessary permissions for deploying the Allure report to GitHub Pages.

  • Slack Notifications: Customize the Slack notifications as needed. Ensure the Slack webhook (SLACK_INCOMING_WEBHOOK) is valid and accessible.

Future Improvements

To integrate with build and deploy workflows to accomplish the complete CI/CD pipeline.

PreviousTestingNextAutomation Framework

Last updated 1 year ago

👨‍💻