Skip to content
This repository was archived by the owner on May 20, 2024. It is now read-only.

Enhancement/#5 GitHub actions (#7) #2

Enhancement/#5 GitHub actions (#7)

Enhancement/#5 GitHub actions (#7) #2

name : Code quality and docker build
on:
push:
branches:
- main
pull_request:
jobs:
pre-commit-hooks:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.12
- name: Install pre-commit
run: pip install --upgrade pip && pip install pre-commit
- name: Run trailing-whitespace check
run: pre-commit run trailing-whitespace --all-files
- name: Run end-of-file-fixer check
run: pre-commit run end-of-file-fixer --all-files
- name: Run check-yaml check
run: pre-commit run check-yaml --all-files
- name: Run check-toml check
run: pre-commit run check-toml --all-files
- name : Run check-merge-conflict check
run: pre-commit run check-merge-conflict --all-files
- name: Run check-json check
run: pre-commit run check-json --all-files
- name: Run check-added-large-files check
run: pre-commit run check-added-large-files --all-files
spell-check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install cspell
run: npm install -g cspell
- name: Run cspell
run: cspell "**" --config "./cspell.json"
golangci-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run golangci-lint
run: |
cd api/
sudo docker build --target lint -t nfc-entry-management-api-lint:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-api-lint:latest
isort:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run isort
run: |
cd nfc_reader/
sudo docker build --target isort -t nfc-entry-management-nfc-reader-isort:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-isort:latest
black:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run black
run: |
cd nfc_reader/
sudo docker build --target black -t nfc-entry-management-nfc-reader-black:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-black:latest
mypy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run mypy
run: |
cd nfc_reader/
sudo docker build --target mypy -t nfc-entry-management-nfc-reader-mypy:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-mypy:latest
pylint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run pylint
run: |
cd nfc_reader/
sudo docker build --target pylint -t nfc-entry-management-nfc-reader-pylint:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-pylint:latest
docker-build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Create api/.env.api
run: |
touch api/.env.api
echo "MYSQL_USER=${{ secrets.MYSQL_USER }}" >> api/.env.api
echo "MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }}" >> api/.env.api
echo "MYSQL_HOST=${{ secrets.MYSQL_HOST }}" >> api/.env.api
echo "MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }}" >> api/.env.api
- name: Create mysql/.env.mysql
run: |
touch mysql/.env.mysql
echo "TZ=${{ secrets.TZ }}" >> mysql/.env.mysql
echo "MYSQL_USER=${{ secrets.MYSQL_USER }}" >> mysql/.env.mysql
echo "MYSQL_ROOT_PASSWORD=${{ secrets.MYSQL_ROOT_PASSWORD }}" >> mysql/.env.mysql
echo "MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }}" >> mysql/.env.mysql
echo "MYSQL_HOST=${{ secrets.MYSQL_HOST }}" >> mysql/.env.mysql
echo "MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }}" >> mysql/.env.mysql
echo "LANG=${{ secrets.LANG }}" >> mysql/.env.mysql
- name: Create nfc_reader/.env.nfc_reader
run: |
touch nfc_reader/.env.nfc_reader
echo "NFC_SYSTEM_CODE=${{ secrets.NFC_SYSTEM_CODE }}" >> nfc_reader/.env.nfc_reader
echo "NFC_SERVICE_CODE=${{ secrets.NFC_SERVICE_CODE }}" >> nfc_reader/.env.nfc_reader
echo "NFC_STUDENT_NUM_BLOCK_CODE=${{ secrets.NFC_STUDENT_NUM_BLOCK_CODE }}" >> nfc_reader/.env.nfc_reader
echo "NFC_NAME_BLOCK_CODE=${{ secrets.NFC_NAME_BLOCK_CODE }}" >> nfc_reader/.env.nfc_reader
- name: Build docker image
run: sudo docker-compose build