Open13
Golangで学ぶGithub Actions
CI
・テスト
・ビルド
・静的解析
・脆弱性診断
CD
・デプロイ
・slackへの通知
テストのやり方
静的解析のやり方(golangci-lint)
はこれでOK
自動デプロイに関してはlamdaを使いながら学ぶ。
lamda構築したみたが自動デプロイでエラになる・。。
DBがあるときのテストのやり方は?
サービスコンテナを使って、データベース、Webサービス、メモリキャッシュ、あるいはその他のツールをワークフローに接続できます。
サービスコンテナを使う
脆弱性診断
・CodeQL
・nancy
reviewdog?datadog?codecov?
reviewdogとは
各種 linter 解析の検出結果を Pull Request にコメントする形で指摘してくれるツールです。
datadogとは
サーバー監視ツール
dockerでテストするやり方もある
ER図の自動生成もできるらしい
mysqlサービスコンテナの立て方
jobs:
job-with-mysql-8_0:
runs-on: ubuntu-20.04
services:
db:
image: mysql:8.0
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: foo
MYSQL_USER: user1
MYSQL_PASSWORD: user1_password
options: >-
--health-cmd "mysqladmin ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Show Docker containers
run: docker ps -a
- name: Show databases for root user
run: mysql --protocol=tcp -h localhost -P 3306 -u root -proot_password -e "SHOW DATABASES"
- name: Show databases for user1
run: mysql --protocol=tcp -h localhost -P 3306 -u user1 -puser1_password -e "SHOW DATABASES"