Skip to content

refactor: cleaner view code for many endpoints (#81) #221

refactor: cleaner view code for many endpoints (#81)

refactor: cleaner view code for many endpoints (#81) #221

Workflow file for this run

name: CI
on:
pull_request:
branches:
- "*"
push:
branches:
- main
- develop
tags:
- "v*"
env:
IMAGE_NAME: unitystation/central-command
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
# because pre-commit uses external mypy
- name: install mypy
run: |
pip install poetry
poetry config virtualenvs.create false
poetry install --only main,typecheck
# https://github.com/typeddjango/django-stubs/issues/458
- name: create .env file
run: cp example.env .env
- uses: pre-commit/action@v3.0.0
unit_test:
needs: [ lint ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
pip install poetry
poetry config virtualenvs.create false
poetry install --only main
- name: create .env file
run: cp example.env .env
- name: Run tests
env:
SECRET_KEY: secret
DB_ENGINE: django.db.backends.sqlite3
run: |
cd src
python manage.py migrate
python manage.py test tests/
docker:
needs: [ lint, unit_test ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build docker image
run: |
docker pull $IMAGE_NAME
docker build --pull --cache-from $IMAGE_NAME -t $IMAGE_NAME:latest .
- name: Log in into Docker Hub
if: ${{ github.event_name == 'push' }}
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
# Context:
# For some reason, commits from semantic-release bot does not trigger any actions.
# Build/push steps were copied into release workflow until we figure out a better way.
# - name: Add a release tag to image
# if: contains(github.ref, 'refs/tags/')
# run: |
# docker tag $IMAGE_NAME $IMAGE_NAME:${GITHUB_REF#refs/tags/}
- name: Push image to registry
if: ${{ github.event_name == 'push' }}
run: |
docker push $IMAGE_NAME