コンフィギュレーションOレール, rspec e rubocop no github action


イントロダクション


インテグラルは、Oのconoは、ヌー、OUのCIは、エヌは、GasデコンパイラEテスターのAPLICAの詩は、トダVez que um desenvolvedor desejarインテグラルsuasのmodificaである.エサEstratは、ギルアジュダを発見しましたファルタタントのcは、dio enviado、comoのencaixe desse novo cを引きますdio ao cは、digo jが存在します.no ci ci podem ser executadosはAutomatizados,Analisadores de Estilo e de Organicaの残りの部分,Escaneadores de Suribiidades e Quopara Coisa que possa ser Automazzada e Ajude o time de desenvolvimenter ter‐uma aplicaに基づいている.
アーマダスFerramentasディプロンは、Viのパラシュートを実行します、o o ci、o o github行為、um produto dispuitamente dentroda p p ggue e que se integra perfeitamente dentro da p - ggddosリポジートNesse Artigo Vouは、エムUa Aplicaの結果を得ます.

クリドオーワークフロー


いいえFIMはArtigo Eu Colorquei O Arquivo Yaml CompletoパラQuem Quiser apenas copiar e colar eの適切なパラシュートで降下します.AQU EU VOは、que重要なCADA Configuraの味方をします.
o Primeiro Passoは、Car Car Na Ra - Z Zをリポジートにします.Github e adicionarパスタワークフローdentro dela、pois enne nessaパスタque o github探偵que o projeto tem fluxos a serem executadosデポクリエum Arquivoヤルdentroデ.Github/ワークフローe nomeie com algo que indique a naturezaはfluxo que serを実行します.プロCocoデTestes Eは、se se se c c didio、eu geralmente nomeio como ciです.MYL‐OU試験とAndCodeLes解析京大理
ヤコブの行動についての一考察
name: CI # Nome do fluxo
on: push # Evento que dispara o fluxo
jobs:
  rubocop: # Identificador do job
    ... # Configurações do job
  rspec: # Identificador do job
    ... # Opçòes de configuração do job
ロゴmais vou explicar como構成者Cada Um Das仕事、Mas Primeiro、Aenon: push , Neleはcolocado o evento queはるかにo fluxo ser disparadoのque.いいえMEUカロ、EU colocoプッシュ、pois quero que o ci cja executado toda vez que algu m m fizer um git push origin nomechen doountブランチ.舞踏会は、エサのためにエプロンQuadum umを要求しますon: pull_request . パラOuttrasオペdocumentação oficial do Github .

コンフィギュレーションO


Daixando claro queエッセは、opcional、pois caso tu n teno o tenhaを必要とします.
ボルトゥランド.github/workflows/ci.yml <研究ノート>
...
rubocop:
  name: Rubocop
  runs-on: ubuntu-latest # Informa o SO que será usado nos testes
  steps:
    # Pega o código do projeto
    - name: Checkout code
      uses: actions/checkout@v1

    # Configura o Ruby e instala as dependências
    - name: Setup Ruby
      uses: ruby/setup-ruby@v1
      with:
        bundler-cache: true
        # Exemplo de outras configurações:
        # ruby-version: 3.0.0
        # bundler: 2.2.8
        # working-directory: ./backend

    # Executa o Rubocop
    - name: Analyze code
      run: bundle exec rubocop
...
つのfluxo simples、com 3 passos:ペガオo cは、digo、Instalar OルビーEに依存します.アンテデSeguir、vale a pena me aprofundar nesse passo de instala seは、ルビーパラを見ます.アンテ、oモモ「Oforiginal」デInstalar OルビーNum Fluxo、時代Utilizandoactions/setup-ruby , エサエリフォアdeestiada recentemente、eアゴラruby/setup-ruby , マンガは、ルビーをします.ERA TEMアルプスのConfigururaは、esを輸入しますwith: :ruby-version :
エッセopのパーセンテージque seja informada aは、oのoルビーque serのinstaladaをします.Coco N ' so o seja definida , serは、検出者です.ruby-version 王の.tool-versions .bundler :
エサオペは、oを意味します.<研究ノート>アレクドット・コムにおける価値観BUNDLED_WITH ドゥGemfile.lock , e se n n o o conconar,serの利用についてworking-directory :
Coco oリポジトリは、Ro Tenha UMAを組織します.そして、e a a ppaas diferenciada、e a aplicaは、o n o o o esteja na ra.ruby-version , .tool-versionsGemfile.lock , としてのアッサムは、ルビーEをします.いいえCoco da Aplicaは、que trabalho、Tenho queファーザー:working-directory: ./services/catarse , Paro O Fluxo funcionar Corretamentebundler-cache :
SEエサOPは、実際には、アクションirを推定します.
アゴラのノートでは、nn de postgresql nada de postgresql、no nodejs、porque a lese de c dido do rubocop n no o o必要性デシラフェラメント、apenas doルビーe das gems da fam - de lia rubocop.

コンフィギュレーション


アゴラo校長、queは、execuを非難します.デッサVEZターは、アンヌPassosをmais、Mas TambはM Nada Muito Complexo .Primeiro vou deixar a a a a a a a a a a a a a a o o o a inteira e vou explicando aos pacos parte pte te :
rubocop:
  ...
rspec:
  name: RSpec
  needs: rubocop
  runs-on: ubuntu-20.04
  env:
    RAILS_ENV: test
    DATABASE_URL: postgres://postgres:example@localhost:5432/db_test
  services:
    postgres:
      image: postgres:latest
      ports: ['5432:5432']
      env:
        POSTGRES_DB: db_test
        POSTGRES_USER: postgres
        POSTGRES_PASSWORD: example
      options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
  steps:
    - name: Checkout code
      uses: actions/checkout@v1

    - name: Setup Ruby
      uses: ruby/setup-ruby@v1
      with:
        bundler-cache: true

    - name: Install postgres client dependencies
      run: sudo apt-get install libpq-dev

    - name: Setup Node
      uses: actions/setup-node@v1
      with:
        node-version: 12.20.0

    - name: Yarn package cache
      uses: actions/cache@v2
      with:
        path: ./node_modules
        key: ${{ runner.os }}-yarn-v1-${{ hashFiles('./yarn.lock') }}

    - name: Install Yarn packages
      run: yarn install --pure-lockfile

    - name: Create database
      run: |
        bundle exec rails db:create
        # Se o projeto usar `schema.rb`
        bundle exec rails db:schema:load
        # Se o projeto usar `structure.sql`
        bundle exec rails db:structure:load
        # Se o projeto não usar nenhum dos dois
        bundle exec rails db:migrate

    - name: Run tests
      run: bundle exec rspec spec
アパPrimeiro por aqui
rspec:
  name: RSpec
  needs: rubocop
  runs-on: ubuntu-20.04
レイズBio Parecido com Oは、CIO da Defini Mars - o o o Fluxoをしますrubocopneeds . エサConfigururaは、oをAvisar AO Giothub que o rspec sの人のpoderええをします.MAS CASOクィラque o o rspec e o o rubocop sejam executados parelamenamensはs s除去除去エサop .アゴラのコンフィギュレーションのために
env:
  RAILS_ENV: test
  DATABASE_URL: postgres://postgres:example@localhost:5432/db_test
services:
  postgres:
    image: postgres:latest
    ports: ['5432:5432']
    env:
      POSTGRES_DB: db_test
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: example
    options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
なしenv.DATABASE_URL , EU Defini UMA URL DE Connectは、o o BancoデDados que o BranoデDados que o Rails利用のために、Curarのために、Everutura Das Tabelas Da Aplicaは、a . essa URLを好みます.イメム仙人postgres:lastest PostgreSQLのmais recente、mas pode serの利用可能なQuarzar Valuer Verを使用します.デロンデservices.postgres.options Eestは、Algusコマンドーパラグアイo SerarddorデBancoデDados Subir、センのo o corre o Rosco Do fluxo seguir e n n o o ser poss .
steps:
    - name: Checkout code
      uses: actions/checkout@v1

    - name: Setup Ruby
      uses: ruby/setup-ruby@v1
      with:
        bundler-cache: true

    - name: Install postgres client dependencies
      run: sudo apt-get install libpq-dev
OS Dois Primeros Passos sは、O - IDのIDを使用します.Terceiro、Instalado Tumaは、PostgreSQL、que - Else - Lea Riaパラロドos ComandoデBancoデDadosをします.
  - name: Setup Node
    uses: actions/setup-node@v1
    with:
      node-version: 12.20.0

  - name: Yarn package cache
    uses: actions/cache@v2
    with:
      path: ./node_modules
      key: ${{ runner.os }}-yarn-v1-${{ hashFiles('./yarn.lock') }}

  - name: Install Yarn packages
    run: yarn install --pure-lockfile
Plan Projetos que Utilizam o WebPackerは、sのVezesを好みます.Primeo Passo Eest - sendo - instalado O node 12.20 : Passo seguinte - like - oactions/cache QUEサーブタントパラRecuperarは、キャッシュQuanto、SEのためにSE、パラクリアーum novoキャッシュなし最終的なFluxoです.パスタque estは、sendo armazenada para ser reaproveitada NAS Execunode_modules ケラメンテFica na raは、projetoをしますyarn.lock QO O GithubサーベルAn se serは、NecessにリオのInstalarに依存します.エフフィムyarn install の利用は、パラfafaaエサInstalaは、o o Do Pacotes、comのop—pure-lockfile パラqueÑo seja gerado um糸.ロックNOVO.
- name: Create database
  run: |
    bundle exec rails db:create
    # Se o projeto usar `schema.rb`
    bundle exec rails db:schema:load
    # Se o projeto usar `structure.sql`
    bundle exec rails db:structure:load
    # Se o projeto não usar nenhum dos dois
    bundle exec rails db:migrate

- name: Run tests
  run: bundle exec rspec spec
POR FIM , "CREATE Database ", O Banco de Testes "Criado e a a a a a a a a a a a a a a a a a a uturtura ' s Gamada a Partir doschema.rbstructure.sql E、カゴは、Armigvos nは、存在します.<研究ノート>第二次大戦前に於ける異文化の試みrails db:test:prepare .
AP通信はO o Bancoデダドスpron、execuの残骸o dodos testesbundle exec rspec spece e esseはo ponファイナルを行う.

結論


アゴラCOM Tudoコンフィギュラード、feito ao projeto disparのためのtodoのプッシュqueは、maaのexecuの偽装の行為を行う.
パラProjetosデCは、ディゴアバト、O githubアクションを認める.<研究ノート>

TLドクター


name: CI
on: push
jobs:
  rubocop:
    name: Rubocop
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout code
        uses: actions/checkout@v1

      - name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true

      - name: Analyze code
        run: bundle exec rubocop

  rspec:
    name: RSpec
    needs: rubocop
    runs-on: ubuntu-20.04
    env:
      RAILS_ENV: test
      DATABASE_URL: postgres://postgres:example@localhost:5432/db_test
    services:
      postgres:
        image: postgres:latest
        ports: ['5432:5432']
        env:
          POSTGRES_DB: db_test
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: example
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
    steps:
      - name: Checkout code
        uses: actions/checkout@v1

      - name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true

      - name: Install postgres client dependencies
        run: sudo apt-get install libpq-dev

      - name: Setup Node
        uses: actions/setup-node@v1
        with:
          node-version: 12.20.0

      - name: Yarn package cache
        uses: actions/cache@v2
        with:
          path: ./node_modules
          key: ${{ runner.os }}-yarn-v1-${{ hashFiles('./yarn.lock') }}

      - name: Install Yarn packages
        run: yarn install --pure-lockfile

      - name: Create database
        run: |
          bundle exec rails db:create
          # Se o projeto usar `schema.rb`
          bundle exec rails db:schema:load
          # Se o projeto usar `structure.sql`
          bundle exec rails db:structure:load
          # Se o projeto não usar nenhum dos dois
          bundle exec rails db:migrate

    - name: Run tests
      run: bundle exec rspec spec