This repository was archived by the owner on May 20, 2024. It is now read-only.
Feature/#9 devlopment v1.0 #3
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 "TIME_VALIDATION_MIN=${{ secrets.TIME_VALIDATION_MIN }}" >> api/.env.api | |
echo "STUDENT_NUMBER_MIN=${{ secrets.STUDENT_NUMBER_MIN }}" >> api/.env.api | |
echo "STUDENT_NUMBER_MAX=${{ secrets.STUDENT_NUMBER_MAX }}" >> api/.env.api | |
echo "NAME_MIN_LENGTH=${{ secrets.NAME_MIN_LENGTH }}" >> api/.env.api | |
echo "NAME_MAX_LENGTH=${{ secrets.NAME_MAX_LENGTH }}" >> 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 | |
echo "API_URL=${{ secrets.API_URL }}" >> nfc_reader/.env.nfc_reader | |
- name: Build docker image | |
run: sudo docker-compose build |