Skip to content

Commit

Permalink
publish fl demonstrator server
Browse files Browse the repository at this point in the history
  • Loading branch information
HeinrichAD authored and HeinrichAD committed Mar 12, 2024
0 parents commit 00ce05c
Show file tree
Hide file tree
Showing 164 changed files with 21,978 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
*
!docker
!fl_server
!fl_server_ai
!fl_server_api
!fl_server_core
!manage.py
!pyproject.toml
!README.md
**/__pycache__
26 changes: 26 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

[*.py]
indent_size = 4

[.vscode/*.json]
indent_size = 4

[{Dockerfile,Dockerfile.*}]
indent_size = 4

[*.md]
indent_size = 4
max_line_length = off
trim_trailing_whitespace = false

[*.puml]
insert_final_newline = false
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
170 changes: 170 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
name: Main

on:
- push
- pull_request

jobs:
lint-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install dependencies
run: bash ./dev install -e ".[all]"
- name: Start static code analysis
run: bash ./dev lint-code

lint-doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 'lts/hydrogen'
- name: Install dependencies
run: npm install markdownlint-cli2
- name: Start type checking
run: bash ./dev lint-doc

lint-scripts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Start shell script analysis tool
run: bash ./dev lint-scripts

mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install dependencies
run: bash ./dev install -e ".[all]"
- name: Start type checking
run: bash ./dev mypy

coverage:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:latest
env:
POSTGRES_USER: demo
POSTGRES_PASSWORD: example
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis:latest
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install dependencies
run: bash ./dev install -e ".[all]"
- name: Start coverage
env:
FL_POSTGRES_HOST: localhost
FL_POSTGRES_PORT: 5432
FL_POSTGRES_DBNAME: demo
FL_POSTGRES_USER: demo
FL_POSTGRES_PASSWD: example
FL_REDIS_HOST: localhost
run: bash ./dev coverage

build-and-push-docker-image:
needs: [lint-code, lint-doc, lint-scripts, mypy, coverage]
permissions:
contents: read
packages: write
env:
REGISTRY: ghcr.io
runs-on: ubuntu-latest
strategy:
matrix:
docker_target: ['celery', 'django']
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}-${{ matrix.docker_target }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
file: ./docker/${{ matrix.docker_target }}/Dockerfile
context: .
push: ${{ contains(github.ref, 'main') || startsWith(github.ref, 'refs/tags/v') }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

build-pages:
needs: [lint-code, lint-doc, lint-scripts, mypy, coverage]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install dependencies
run: bash ./dev install -e ".[all]"
- name: Build pages
run: bash ./dev doc-build
- name: Fix permissions
run: |
chmod -c -R +rX "site/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v2
with:
path: site

deploy-pages:
if: ${{ contains(github.ref, 'main') || startsWith(github.ref, 'refs/tags/v') }}
needs: [build-pages]
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
Loading

0 comments on commit 00ce05c

Please sign in to comment.