حساب‌فان (بریم رو گیت‌هاب)

فکر کنم کار با گیت‌لب یاد گرفتید ولی دیگه نیازی نیست با گیت‌لب کار کنیم، گیت‌هاب برای پروژه‌های اپن سورس جای بهتریه ولی خب برای نسخه پرایوتش پولیه، واس همین پروژه‌های پرایوت می‌برم رو گیت‌لب.

واضحه اول یه ریپازیتوری رو گیت‌هاب درست می‌کنیم، مرحله دوم کدها کامیت می‌کنیم، بعدش میریم سراغ تست :)

برای تست، کدکاوریج و... میتونید از این لینک نگاهی به ابزارهایی که برای گیت‌هاب وجود داره بکنید، برای CI از circleci استفاده می‌کنم، چون فوق‌العاده سریع و سادس، با یه نگاه کوچیک به داکیومنتش متوجه میشید چی به چیه، برای همه زبان‌ها مثال داره اگه مثال‌ها درک نکردید بهتره پست من درباره گیت‌لب بخونید.

برای ایجاد تست اول سری به سایتش بزنید، لاگین کنید و در مرحله بعد فولدر .circleci در روت پروژه درست کنید و داخل این فولدر فایل .config.yml بسازید، حالا محتوای این فایل برای پروژه ما به این صورت میشه:

# Golang CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-go/ for more details
version: 2
jobs:
  build:
    docker:
      # specify the version
      - image: circleci/golang:latest
        environment:
          - MYSQL_ADDRESS=localhost
          - MYSQL_DATABASE=hesab_fun
          - MYSQL_USERNAME=root
          - MYSQL_PASSWORD=123456
          - MYSQL_PORT=3306
      - image: mysql:latest
        environment:
          - MYSQL_DATABASE=hesab_fun
          - MYSQL_ROOT_PASSWORD=123456

      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      # - image: circleci/postgres:9.4

    #### TEMPLATE_NOTE: go expects specific checkout path representing url
    #### expecting it in the form of
    ####   /go/src/github.com/circleci/go-tool
    ####   /go/src/bitbucket.org/circleci/go-tool
    working_directory: /go/src/github.com/hesabFun/core
    steps:
      - checkout

      # specify any bash command here prefixed with `run: `
      - run: curl https://glide.sh/get | sh
      - run: glide install
      - run: go get github.com/rubenv/sql-migrate/...
      - run: sql-migrate up
      - run: sql-migrate up -env=seed
      - run: cp -r .env.example .env
      - run: go build
      - run: go test -v ./...  -race -coverprofile=coverage.txt -covermode=atomic
      - run: bash <(curl -s https://codecov.io/bash) -t ${CODECOV_TOKEN}

همه چیز واضحه بجز خط آخر، اون برای کدکاوریج پروژه‌س، برای مثال نگاهی به این ریپورت بندازید، میگه چند درصد پروژه تست شده و کدوم خط‌ها تست نشدن، اگه مشکلی برای اون قسمت از پروژه اتفاق بیفته، تو تست متوجه نمی‌شیم.

برای کدکاوریج نیازه اول داخل سایتش لاگین کنید بعد عین من خط آخر به فایل تست اضافه کنید و تمام.

این دوتا سرویس خیلی مهم بودن تا بدونیم پروژه در چه حاله ولی سرویس‌های دیگم هستند اگه حوصله داشتید اضافه کنید، برای مثال من گو ریپورت اضافه کردم، لاگین نمی‌خواد، فقط لینک پروژه گیت‌هاب بهش بدید.

حالا من بَدج این سرویس‌ها به فایل README.md پروژه اضافه کردم تا با باز کردن ریپو وضعیت تست، کدکاوریج و... ببینید. (دیگه خبری از اسلک و تلگرام نیست)

# HeasbFun - core
[![Build Status](https://circleci.com/gh/hesabFun/core.svg?&style=shield)](https://circleci.com/gh/hesabFun/core)
[![codecov](https://codecov.io/gh/hesabFun/core/branch/master/graph/badge.svg)](https://codecov.io/gh/hesabFun/core)
[![Go Report](https://goreportcard.com/badge/github.com/hesabFun/core)](https://goreportcard.com/report/github.com/hesabFun/core)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/hesabFun/core/blob/master/LICENSE)

Free, open source and cross-platform finance application

پروژه اپن سورسه، کافیه از اینجا کلون کنید تا تموم کامیت‌ها ببینید.