DIGIT Docs
v2.3
  • DIGIT Knowledge Base
  • Local Governance
v2.3
  • Introducing Public Finance Management (iFIX)
    • Strategy & Approach
  • Platform
    • Release Notes
      • iFIX Core Release Notes
        • iFIX Core Build Updates
      • iFIX Adaptor Release Notes
        • iFIX Adaptor Build Updates
      • Migration to DIGIT Architecture
        • Migration Checklist
        • Migration Steps - iFIX
        • Migration Steps - Adapter
    • Specification
      • Functional Specifications
      • Technical Specification
        • Information Model
        • APIs
    • Architecture
      • Technology
    • Services
    • Roadmap
    • Source Code
    • Setup
      • iFIX Service Setup
      • Infrastructure Setup
        • Quickstart/Local Setup
        • On AWS
        • On Azure
      • Deploy Services
        • Deploy from your local machine
        • CI/CD
      • API Access Key
    • Configuration
      • Core Service Documents
        • Master Data Setup
          • Domain Services
            • iFIX Core Master Data Service
            • iFIX Core Fiscal Event Service
            • iFIX Core Fiscal Event Post-Processor
        • iFIX Core Data Cleanup
        • iFix Department Entity Service
        • iFix Client Management Service
          • Keycloak Setup
      • Configuring Master Data
      • Promotion Docs
        • Master Data Service Promotion Doc
        • mGramSeva iFIX Adapter
        • Department Entity Service Promotion
        • Fiscal Event And Fiscal Event Post-processor Service Promotion
        • MongoDB Migration
  • Products
    • mGramSeva
      • Functionalities
        • Login and Forgot Password
        • User Roles and Home Screen
        • Create Consumer
        • Search Consumer
        • Edit Consumer
        • View Consumer
        • Billing - Bulk Demand Generation
        • Billing - Metered Connection
        • Revenue Collection - Offline
        • Expenditure - Add Expense
        • Expenditure - Modify Expense
        • User Onboarding - Bulk Upload
        • User Onboarding/Walkthrough
        • Feedback - Post Payment
        • SMS Notifications
        • Home Page Notifications
        • Edit User Profile
        • Bill and Receipt PDF
        • Update Expense Search
        • Bulk Demand Generation for Non Metered
        • Demand/Bill Generation for Metered Connection
        • Household Register
        • Tabular Dashboard - Expense
        • Tabular Dashboard - Collection
        • Download Bills and Receipt
      • Architecture
        • Technology
      • Source Code
      • Documents
        • User Manual
        • Demo video
        • UI Mockups
        • mGramSeva UI
          • Application Permissions & Dependencies
        • Tech User Manual
          • Language Selection
          • Login
          • Update Password FTL
          • Forgot Password
          • Home
          • Edit Profile
          • Change Password
          • Generate Bill
          • Search Connection
          • Consumer Details
            • Create Consumer
            • Update Consumer
          • Expenses
            • Add Expenses
            • Search Expense Bills
            • Modify Expenses
          • Dashboard
            • Monthly Dashboard
            • Collections Dashboard
            • Expenditure Dashboard
          • Collect Payment
          • Consumer Feedback
          • Household Register
          • Bluetooth Thermal Printer Integration
          • Application Structure
        • Application Structure
        • Integration Testing
        • Integration Testing With Github Actions
        • Firebase Analytics Integration
        • Backend Services
          • mGramSeva - Water Services
          • mGramSeva - Water Service Calculator
          • mGramSeva e-Challan Service
          • mGramSeva - User Service
          • mGramSeva - Billing Service
          • mGramSeva - User OTP
          • iFix Adapter Integration Service
          • mGramSeva - Rollout Dashboard
          • mGramSeva Scheduler
          • mGramSeva- Services Re-Indexing
          • mGramSeva Dashboard
    • iFIX Adapter
      • Adapter Service Documents
        • iFIX Adapter Master Data Setup
        • mGramSeva iFIX Adapter Service
        • iFIX Adapter Master Data Service
        • iFix Adapter Services
      • Source Code
      • Installation
        • Local Setup
        • CI/CD
    • iFIX Dashboard
      • Features
      • Architecture
        • Technology
      • Source Code
      • Installation
        • Local Setup
        • CI/CD
      • Documents
        • iFIX Reference Dashboard
          • iFIX Fiscal Event Aggregator
  • Community
    • Ecosystem
      • News and Events
    • PFM Blogs
      • Why PFM Needs Fiscal Information Exchange Standards
      • Re-imagining Digital PFM in India
      • A Transformative Odyssey: The Impact of Smart Payments in Benefit Delivery
    • Discussions
    • Issues
Powered by GitBook

All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.

On this page
  • About Git Actions
  • Why Use Git Action
  • Reference link
  • File Path
  • Integrating GitHub Actions in Project
  • Integrating self-hosted runners
  • About Self-hosted runner
  • Integrating self-hosted Runner with Local Machine
  • Reference Link

Was this helpful?

Edit on GitHub
Export as PDF
  1. Products
  2. mGramSeva
  3. Documents

Integration Testing With Github Actions

PreviousIntegration TestingNextFirebase Analytics Integration

Last updated 2 years ago

Was this helpful?

About Git Actions

GitHub Actions enables you to create custom software development lifecycle workflows directly in your GitHub repository. This enables you to include Continues Integration (CI) and continuous deployment (CD) capabilities. it easier to automate how you build, test, and deploy your projects on any platform, including Linux, macOS, and Windows. Run your workflows in a virtual machine and local machine as well.

Why Use Git Action

  • It is easy to build the app in artefacts.

  • Analyze, Build, Test and Deploy our applications on any platform.

  • Easily release the app bundle in the Play store.

  • The speed of GitHub Actions is good

Reference link

File Path

Integrating GitHub Actions in Project

  • Every command will be written in yml files and all these files will be in .github/workflows/ directory of your repository, then only git will identify our script files.

  • In our repository we are maintaining this file as main.yml, In this yml file we are executing the android drive job, which will run the integration testing scripts, once all the tests are passed then only it will build the app in QA ENV and store it in the artefacts as shown image.

  • Explained every line of main.yml file with comments below.


# Name of your workflow.
name: integration-test

# Trigger the workflow on push or pull requests.
on:
  push:
    branches: [ IFIX-732 ]

# A workflow run is made up of one or more jobs.
jobs:
  # id of job, a string that is unique to the "jobs" node above.
  drive_android:
    # The type of machine to run the job on.
    runs-on: ubuntu-latest
    # Creates a build matrix for your jobs. You can define different
    # variations of an environment to run each job in.
    strategy:
      # A set of different configurations of the virtual  
      # environment.
      matrix:
        api-level: [ 30 ]
        target: [ default ]
    # Contains a sequence of tasks.
    steps:
      # The branch or tag ref that triggered the workflow will be 
      # checked out.
      - uses: actions/checkout@v2
      # Sets up a java environment.
      - uses: actions/setup-java@v1
        with:
          java-version: '1.8.x'
      # Sets up a Flutter environment.
      - uses: subosito/flutter-action@v1
        with:
          flutter-version: '2.5.2'
          channel: 'stable'
      - name: "Run Flutter Driver tests"
        #Operation for installing, configuring and running Android emulator
        # https://github.com/marketplace/actions/android-emulator-runner
        uses: reactivecircus/android-emulator-runner@v2
        with:
          api-level: ${{ matrix.api-level }}
          target: ${{ matrix.target }}
          arch: x86_64
          profile: Nexus 6
          script: "cd ./frontend/mgramseva && flutter drive  --dart-define=BASE_PATH=https://mgramseva-qa.egov.org.in/
          --driver=test_driver/integration_test_driver.dart   --target=integration_test/login_test.dart"
      # checking out to respective directory and building the apk
      - name: "flutter pub get"
        run: cd ./frontend/mgramseva && flutter build apk
      # uploading the release build to artifact
      - uses: actions/upload-artifact@v1
        with:
          name: release-apk
          path: frontend/mgramseva/build/app/outputs/apk/release/app-release.apk

Integrating self-hosted runners

About Self-hosted runner

We can host your own runners and customize the environment used to run jobs in your GitHub Actions workflows.

Self-hosted runners can be physical, virtual, in a container, on-premises, or in a cloud.

With self-hosted runners, you can choose to create a custom hardware configuration with more processing power or memory to run larger jobs, install software available on your local network, and choose an operating system not offered by GitHub-hosted runners.

Integrating self-hosted Runner with Local Machine

  • Under your repository name, click Settings as shown in the image.

  • In the left sidebar, click Actions.

  • In the left sidebar, under "Actions", click Runners.

  • Click New self-hosted runner

  • Select the operating system image and architecture of your self-hosted runner machine.

  • You will see instructions showing you how to download the runner application and install it on your self-hosted runner machine.

  • After completing the steps to add a self-hosted runner, the runner and its status are now listed under "Runners".

  • Now you will have to edit the main.yaml file for using our local machine, replace the runs on with self-hosted as shown below.

runs-on: ubuntu-latest >> runs-on: self-hosted

Reference Link

Primary Files

On , navigate to the main page of the repository.

All content on this page by is licensed under a .

GitHub.com
GitHub Actions Documentation - GitHub Docs
Github Actions for Flutter
About self-hosted runners - GitHub Docs
punjab-mgramseva/languageSelection.dart at develop · egovernments/punjab-mgramseva
Adding self-hosted runners - GitHub Docs
​
eGov Foundation
Creative Commons Attribution 4.0 International License
Creative Commons License