Add telegram browser #398
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: test_fastapi_server | |
on: | |
push: | |
paths: | |
- fastapi_server/** | |
- .github/workflows/test_fastapi_server.yml | |
pull_request: | |
branches: | |
- master | |
- develop | |
env: | |
SUBDIRECTORY: fastapi_server | |
IMAGENAME: fastapi_server | |
VERSION_NUMBER: 1.1.1 | |
jobs: | |
run_pre_commit_checks: | |
name: pre_commit_check_py${{ matrix.python-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@v4 | |
# https://earthly.dev/get-earthly | |
- name: Install Earthly | |
run: sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/latest/download/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly && /usr/local/bin/earthly bootstrap --with-autocomplete' | |
- name: Install | |
working-directory: ${{ env.SUBDIRECTORY }} | |
run: earthly +install-dev --verbose true --PYTHONVERSION=${{ matrix.python-version }} | |
- name: Run code checks | |
working-directory: ${{ env.SUBDIRECTORY }} | |
run: earthly +pre-commit --verbose true --PYTHONVERSION=${{ matrix.python-version }} | |
test_backend: | |
name: test_backend_py${{ matrix.python-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up postgres and minio test instances | |
working-directory: ${{ env.SUBDIRECTORY }} | |
run: | | |
docker compose --profile test up -d | |
- name: Set up npm for prisma | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install poetry | |
run: pip install poetry --no-cache-dir poetry==1.8 | |
- name: Make poetry use local .venv folder | |
run: poetry config virtualenvs.in-project true | |
- name: Install packages | |
working-directory: ${{ env.SUBDIRECTORY }} | |
run: poetry install | |
- name: Generate prisma types | |
working-directory: ${{ env.SUBDIRECTORY }} | |
run: poetry run prisma generate | |
- name: Run pytest | |
working-directory: ${{ env.SUBDIRECTORY }} | |
run: poetry run python -m pytest test --random-order | |
build_and_deploy_docker_image: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build docker image | |
working-directory: ${{ env.SUBDIRECTORY }} | |
run: | | |
docker build -t burnysc2/${{ env.IMAGENAME }}:latest . | |
docker build -t burnysc2/${{ env.IMAGENAME }}:latest_dev . | |
docker build -t burnysc2/${{ env.IMAGENAME }}:${{ env.VERSION_NUMBER}} . | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- id: wait-for-jobs | |
uses: yogeshlonkar/wait-for-jobs@v0 | |
with: | |
gh-token: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | | |
pre_commit_check_py3.10 | |
pre_commit_check_py3.11 | |
pre_commit_check_py3.12 | |
test_backend_py3.10 | |
test_backend_py3.11 | |
test_backend_py3.12 | |
- name: Upload docker image (develop) | |
if: github.ref == 'refs/heads/develop' && github.event_name == 'push' | |
run: | | |
docker push burnysc2/${{ env.IMAGENAME }}:latest_dev | |
docker push burnysc2/${{ env.IMAGENAME }}:${{ env.VERSION_NUMBER}} | |
- name: Upload docker image (master) | |
if: github.ref == 'refs/heads/master' && github.event_name == 'push' | |
run: docker push burnysc2/${{ env.IMAGENAME }}:latest | |
deploy_backend: | |
if: github.ref == 'refs/heads/develop' | |
needs: [build_and_deploy_docker_image] | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
env: | |
USERNAME: fastapidev | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update docker-compose.yml | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.HOST }} | |
port: 22 | |
username: ${{ env.USERNAME }} | |
key: ${{ secrets.FASTAPISERVERDEVKEY }} | |
passphrase: '' | |
source: "fastapi_server/docker-compose.yml" | |
target: /home/${{ env.USERNAME }}/ | |
strip_components: 1 | |
# overwrite: true | |
- name: Update docker image on server and restart server | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.HOST }} | |
port: 22 | |
username: ${{ env.USERNAME }} | |
key: ${{ secrets.FASTAPISERVERDEVKEY }} | |
passphrase: '' | |
script: | | |
cd /home/${{ env.USERNAME }} | |
docker compose --profile prod pull | |
docker compose --profile prod down | |
docker compose --profile prod up -d |