Navigation

    TripleA Logo

    TripleA Forum

    • Register
    • Login
    • Search
    • TripleA Website
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Tags

    Re-Organizing TripleA Folders for the benefit of github action paths

    Development
    1
    1
    179
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LaFayette
      LaFayette Admin last edited by

      Following up on: Code Structure - Organization into a "Many Repo" (Breaking up the monorepo) #11204

      I'm looking to restructure the folders in TripleA, below is an outline of what I was thinking. There are few key features here. Firstly a big goal is to get the folder paths to line up with isolated build units. Specifically we can use a 'paths' attribute in github actions to trigger specific builds if a specific path is updated. Hence, having a single folder path line up for everything that is involved with a server, or the game-app works really well with this.

      Of note, for each build unit, I'll be looking to add a run folder that contains some common verbs that will execute builds, tests, & deployments. This will make it possible to easily and consistently know via CLI how to run and build.Further, the github build actions will invoke these build scripts. Beyond convenience, and documentation, this will therefore also help line up what we run locally via CLI during development with what is run by automated build checks.

      I'll be looking to isolate as much as I can into these run folders as well. Today we have the build of everything in a single top level .build folder. I'll look to distribute these build scripts into a new .build folder located in the needed .run folder. For example, all of the game-app components in .build/ would be moved to /game-app/run/.build. A net effect is a person can look to a run folder to see all details for how that unit is built, tested & deployed.

      Without further ado, I'm thinking to re-organize the source folders into the following structure:

      docs/
      game-app/
        ai/
        domain-data/
        game-headed/
        game-headless/
        game-core/
        map-data/
        smoke-testing/
        lib/
      forums-node-bb/
      http-clients/
        maps/
        chat/
        games/
        error-reporting/
        github-api/
        lib/
          feign-common/
          websocket-client/
      servers/
        nginx-reverse-proxy/
        game-relay/
        server-deployment-common/  # common system ansible roles, inventory files
        *maps/
        *chat/
        *games/
        *error-reporting/
        lib/
           websocket-server/
      .github/
        game-app-pull-request
        game-app-merge
        http-clients-pull-request
        server-maps-pull-request
        server-maps-merge
        server-games-pull-request
        server-games-merge
        server-chat-pull-request
        server-chat-merge
        server-error-reporting-pull-request
        server-error-reporting-merge
      

      [*] these were previously the lobby (aka spitfire). I'm thinking to split the lobby server into 4 different apps: [maps, chat, games, error-reporting].

      1 Reply Last reply Reply Quote 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums