0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

github-actionsを使ってCI環境を作るのに1年以上かかったけどできた

Last updated at Posted at 2023-02-25

はじめに

大概のWeb現場はCIが整備してあるだろう。いつかやりたいと思いながらも、結局やり方はわからないままだったのでチャレンジしたらすごく難しかったという話

stackoverflowに助けを求めた

thax Azeem san! 2,000円分ぐらいpaypal送金しようとしたけど結局アカウントを教えてはくれなかった。いい人だな。
英語で質問すると英語力もついていいことずくめやで(急いでると翻訳サイトつかっちゃうけど...)

手順

requirements

  1. requirements.txt の書き出し
  2. リポジトリに push(CIが requirements.txt を使用する)
console
dev\Portfolio> pip freeze > requirements.txt

workflowの新規作成

  1. django用のテンプレートはあった(最終的にあまり役には立たなかったけど)
    image.png
    image.png
  • データベースにアクセスするようなテストがなければ、ほぼ初期設定でよくて、requirements.txt を使用して、djangoのテストが流せそう

  • master にコミットするぞって言われるので OK したあと pull でローカルPCに引き込める

  • 試行錯誤するごとに commit してCIを走らせるしか検証方法はないようだ
    image.png

  • Actions の画面に戻るともう試行結果が出てる
    image.png

Actions最終版

結局

  • 事前に test_portfolio_db はつくらなくて良い
  • mysqlの起動が必要
  • pythonユーザは必要
  • 権限付与は必要
  • makemigrations は必要(※ただし、テストには合格するがログをよく見ると portfolio_db へのアクセスを試みて失敗している)
  • DJANGO_SECRET_KEYは必要
最終版Actions
name: Django CI

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      max-parallel: 1
      matrix:
        python-version: [ 3.12 ]

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v3
        with:
          python-version: ${{ matrix.python-version }}
          cache: pip

      - name: Set up
        run: |
          sudo systemctl start mysql
          mysql -u root -proot -e "CREATE USER 'python'@'localhost';"
          mysql -u root -proot -e "GRANT ALL ON test_portfolio_db.* TO 'python'@'localhost';"
          
          python -m pip install setuptools
          python -m pip install -r requirements.txt
          python manage.py makemigrations vietnam_research gmarker shopping linebot_engine warehouse taxonomy soil_analysis securities

      - name: Run tests
        run: |
          export DJANGO_SECRET_KEY="$(base64 <<< "$RANDOM|TeStiNg|$RANDOM" | tr -d '\n')"
          python manage.py test

確認

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?