参考にさせていただいたページ
今日の環境
ローカル
リモート
概要
二つのjobを並列で実行するようにしました。
共通の処理はaction.ymlにまとめました。
.github/workflows/rails_test.ymlの作成とその記述内容
ワークフローのディレクトリとファイルを作成します。
% mkdir -p .github/workflows/ % vim .github/workflows/rails_test.yml
以下の通り記述します。
name: Rails Test Workflow on: push jobs: rubocop: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: setup_docker_compose_services uses: ./.github/actions/setup_docker_compose_services - name: docker-compose run --rm app rubocop run: docker-compose run --rm app rubocop rspec: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: setup_docker_compose_services uses: ./.github/actions/setup_docker_compose_services - name: docker-compose run --rm app rspec run: docker-compose run --rm app rspec
.github/actions/setup_docker_compose_services/action.ymlの作成とその記述内容
actionを格納するディレクトリとファイルを作成します。
% mkdir -p .github/actions/setup_docker_compose_services/ % vim .github/actions/setup_docker_compose_services/action.yml
以下の通り記述します。
name: "setup_docker_compose_services" runs: using: "Composite" steps: - name: create docker-compose.yml run: cp docker-compose.sample.yml docker-compose.yml shell: bash - name: create nginx.conf run: cp nginx/nginx.sample.conf nginx/nginx.conf shell: bash - name: create nginx log files run: touch nginx/log/nginx/access.log && touch nginx/log/nginx/error.log shell: bash - name: create rails database.yml run: cp rails/config/database.sample.yml rails/config/database.yml shell: bash - name: docker-compose run --rm app bundle install run: docker-compose run --rm app bundle install shell: bash - name: docker-compose build run: docker-compose build shell: bash - name: docker-compose run app rails db:create run: docker-compose run app rails db:create shell: bash - name: docker-compose -v action run: docker-compose -v shell: bash