Giter Club home page Giter Club logo

hawkcd's People

Contributors

birkoff88 avatar gitter-badger avatar hpslavov avatar momchil-anachkov avatar mvivancheva9 avatar rallzmt avatar rminchev1 avatar slavidimitrov avatar tochev86 avatar vladislavnikolov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hawkcd's Issues

Pipeline dir is not created on the agent

Steps to reproduce:

Run a simple task w/ one job and one task and try to execute a simple command

Expected Result

A folder with the pipeline name should be created inside the Pipelines folder on the agent

Actual Result

Folder with pipeline name is not created

Implement Material Updater Component: Core

  • Implement MaterialTracker worker
  • Implement MaterialTrackerService
  • Implement MaterialPreparer worker
  • Implement MaterialTrackerService
  • Implement MaterialUpdater
  • Implement MaterialUpdaterFactory
  • Cover with Unit tests

Portal Development

  • Portal main page design, it needs to communicate the software value to potential users

  • General information architecture (portal structure)
    • Get Started
      • Installation
        • Windows
        • Linux
      • Requirements
      • Concepts
    • Contribute
      • Contribution Agreement
      • Technical Documentation
        • SRS
        • SDD
        • Hawk API
      • Development Process
        • Labels
        • Request Feature
        • Issues
          • Report Bug
          • Create Issue
      • Discussion
        • Forum
        • Chat
    • User Guide
      • Walkthrough
    • Roadmap
    • About Us
    • Download

  • User docs, concepts - identify topics
  • Developer docs
    • Development process, bug fixing, pull requests, releases. lables explained
    • Debugging the application Nix/Win

  • Licensing

Refactor Hawk Agent application

  • The Hawk Agent should call an endpoint on the Server updating itself in the database.
  • The Hawk Agent should call an endpoint on the Server updating the Job it is currently running in the database.

Implement YAML based configuration file for the server

A user should be able to configure:

  • Server settings

Port
Host

  • Database settings

Current database
Should use embedded database
Redis
MongoDb

  • Provider settings
    Github
  • Folder settings

Materials
Artifacts

  • Worker settings

Pipeline Scheduler
Material Tracker

Can't edit task

Steps to reproduce:

Create a pipeline

Go to edit mode and enter a command different than the default
Start the pipeline

Expected Result

The task should reflect the changes entered in the edit screen

Result:

The Job fails with default task values

Implement Material CRUD Services

  • Implement IMaterialDefinitionService
  • Implement MaterialDefinitionService
  • Implement IMaterialService
  • Implement MaterialService
  • Cover with Unit tests

Reordering tasks with drag and drop does not work

Steps to reproduce:

Add two Tasks to a Job
Rearrange them with drag and drop
Refresh the page

Expected Result

The Tasks should be in the new order

Actual Result

The Tasks are still in the initial order

Implement HTTP Endpoints

  • Pipelines
  • Stages
  • Jobs
  • Pipeline Groups
  • Pipeline-definitions
  • Stage-definitions
  • Job-definitions
  • Task-definitions
  • Materials
  • Artifacts
  • Agents
  • Unit Tests

Implement ViewModelUpdater Service

  1. Implement logic that updates the global ViewModel
    • Implement updating of PipelineGroups
    • Implement updating of Pipelines
    • Implement updating of PipelineDefinitions
    • Implement updating of Agents

Implement "browser build explorer"

Implement a page on the portal site to list all daily builds and scheduled releases so that users can have access to the latest & stable bits of the software.

Exec command fails to execute (Linux)

Steps to reproduce:

Create an ExecTask
Command: /bin/bash
Arguments: -c mkdir directoryName

Expected Result

The Task should be executed successfully

Actual Result

/bin/bash: - : invalid option

Implement a Validator class

Should have one method with an overload for each object type.

  • 1. Implement validation for Object
  • 2. Implement validation for PipelineGroup
  • 3. Implement validation for PipelineDefinition
  • 4. Implement validation for StageDefinition
  • 5. Implement validation for JobDefinition
  • 6. Implement validation for TaskDefinition
  • 7. Implement validation for MaterialDefinition
  • 8. Implement validation for Agent
  • 9. Implement validation for ExecTask
  • 10. Implement validation for FetchArtifactTask
  • 11. Implement validation for FetchMaterialTask
  • 12. Implement validation for UploadArtifactTask
  • 13. Cover with unit tests

Implement Core Services

  • 1. Implement Core Services
    • Implement PipelineGroupService
    • Implement PipelineDefinitionService
    • Implement PipelineService
    • Implement AgentService
    • Implement EnvironmentService
  • 2. Cover all classes with unit tests

Implement Pipeline Component: Status Updater

  • 1. Implement logic that searches for Pipelines to be updated.
  • 2. Implement logic that updates the statuses of the found Pipelines and their Stages and Jobs.
  • 3. Cover with unit tests.

UI styling and functionality implementation

  • Display Stage Runs in Stage Definitions correctly
  • Arrange Job Runs correctly
  • Display Stage statuses correctly
  • Display Job statuses correctly
  • Restyle Agents view
  • Display Job results correctly
  • Seperate History and Current run screens
  • Restyle History screen
  • Create Current run screen
  • Create all Materials in Admin screen
  • Implement displaying of last Stage run in Pipelines screen, with statuses

Refactor Server Models

  • 1. Create necessary models
  • 2. Remove unused properties of created ones
  • 3. Abide by conventions
  • 4. Encapsulate logic

Implement CrudService

  • 1. Implement CRUD operations
    • get all
    • get by id
    • add
    • update
    • delete
  • 2. Cover all methods with unit tests

Run Management screen improvements

We need to make more intuitive and user friendly the run management screen. Ideally concentrating on the data visualization aspect the workflow. Using some sort of chart to depict the pipeline process will be necessary

Implement UI Services

  1. Implement CRUD operations for Services
    • PipelineGroup Service
    • PipelineDefinition Service
    • Pipeline Service
    • Agent Service
  2. Implement handling of Server response for Services
    • PipelineGroup Service
    • PipelineDefinition Service
    • Pipeline Service
    • Agent Service

Implement JobDefinition Service

  1. Implement CRUD operations
    • get all jobs in pipeline
    • get all jobs in stage
    • get by id
    • add
    • update
    • delete
  2. 2. Cover all classes with unit tests

Getting Started Workflows redesign

Overview

For the first beta release we'll need to consider two main "getting started" workflows. The purpose is to provide easy "getting started" experience.

We have 2 main cases that new users will end up with:

When a user sign-in for the first time with the system he should see the /pipelines screen and a big button that invites him to get started setting up his software delivery workflow. If the user came through the Sign-up w/ GitHub scenario he should be offered first to sync his account w/ github-> this will initiate the repos sync and creation of server "materials", once this is done the user should be offered to continue setting up his pipeline.

Sign-up w/ GitHub

For this scenario a user chooses to sign-up w/ GitHub account and agrees to share his source code repos w/ hawkcd.io, The server will automatically import them as materials from type git and make them available for the "Pipeline creation workflow". There should be a way the user to see all git repos and manipulate them sync/delete/add new ones. All the repos that are automatically imported from GH as materials should be labeled w/ github label.

Sign-up w/ email/password

After the sign in the user will be navigated to the pipelines screen, where he can continue with the regular pipeline creation process. Once the pipeline is created a default pipeline group called "default" should be created for the current pipeline.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.