diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 58cafe7c..98862db5 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,14 +1,16 @@ name: Deploy to production +concurrency: production on: push: - branches: [ actions ] + branches: [master] workflow_dispatch: jobs: deployment: runs-on: ubuntu-latest environment: production + timeout-minutes: 30 steps: - name: SSH Remote Commands @@ -27,6 +29,18 @@ jobs: username : ${{secrets.USER}} key: ${{secrets.KEY}} + # See https://github.com/ae-utbm/sith3/wiki/GitHub-Actions#deployment-action script: | - whoami - ls -al \ No newline at end of file + BASE_DIR="$(dirname "$(realpath "$0")")" + export PATH="$HOME/.poetry/bin:$PATH" + pushd $BASE_DIR + + VERSION_LAST=$(git rev-parse HEAD) + git pull + poetry update + poetry run ./manage.py migrate + echo "yes" | poetry run ./manage.py collectstatic + poetry run ./manage.py compilestatic + poetry run ./manage.py compilemessages + + sudo systemctl restart uwsgi \ No newline at end of file diff --git a/.github/workflows/unittests.bak b/.github/workflows/unittests.bak deleted file mode 100644 index 98c57daf..00000000 --- a/.github/workflows/unittests.bak +++ /dev/null @@ -1,68 +0,0 @@ -name: Unit Testing - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - unittests: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Set up python - uses: actions/setup-python@v4 - with: - python-version: '3.8' - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install gettext libxapian-dev libgraphviz-dev - - - name: Install poetry - run: | - python -m pip install --upgrade pip - python -m pip install poetry - - - name: Checking pyproject.toml syntax - run: poetry check - - - name: Install project - run: poetry install -E testing - - - name: Setup xapian index - run: | - mkdir -p /dev/shm/search_indexes - ln -s /dev/shm/search_indexes sith/search_indexes - - - name: Setup project - run: poetry run ./manage.py compilemessages - - - name: Launch tests and generate coverage report - run: | - poetry run coverage run ./manage.py test - poetry run coverage report - - lint: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up python - uses: actions/setup-python@v4 - with: - python-version: '3.8' - - - name: Install black - run: | - python -m pip install --upgrade pip - python -m pip install black==22.6.0 - - - name: Check linting - run: black --check . - - diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index f1a6aa13..9356882a 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -5,18 +5,65 @@ on: branches: [ master ] pull_request: branches: [ master ] - + jobs: unittests: runs-on: ubuntu-latest + timeout-minutes: 30 steps: - - run: echo 'Dry test' + - uses: actions/checkout@v3 + + - name: Set up python + uses: actions/setup-python@v4 + with: + python-version: '3.8' + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install gettext libxapian-dev libgraphviz-dev + + - name: Install poetry + run: | + python -m pip install --upgrade pip + python -m pip install poetry + + - name: Checking pyproject.toml syntax + run: poetry check + + - name: Install project + run: poetry install -E testing + + - name: Setup xapian index + run: | + mkdir -p /dev/shm/search_indexes + ln -s /dev/shm/search_indexes sith/search_indexes + + - name: Setup project + run: poetry run ./manage.py compilemessages + + - name: Launch tests and generate coverage report + run: | + poetry run coverage run ./manage.py test + poetry run coverage report lint: runs-on: ubuntu-latest steps: - - run: echo 'Dry lint' + - uses: actions/checkout@v3 + - name: Set up python + uses: actions/setup-python@v4 + with: + python-version: '3.8' + + - name: Install black + run: | + python -m pip install --upgrade pip + python -m pip install black==22.6.0 + + - name: Check linting + run: black --check .