-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit introduces a boilerplate inspired by https://github.com/numerique-gouv/impress. The code has been cleaned to remove unnecessary Impress logic and dependencies. Changes made: - Removed Minio, WebRTC, and create bucket from the stack. - Removed the Next.js frontend (it will be replaced by Vite). - Cleaned up impress-specific backend logics. The whole stack remains functional: - All tests pass. - Linter checks pass. - Agent Connexion sources are already set-up. Why clear out the code? To adhere to the KISS principle, we aim to maintain a minimalist codebase. Cloning Impress allowed us to quickly inherit its code quality tools and deployment configurations for staging, pre-production, and production environments. What’s broken? - The tsclient is not functional anymore. - Some make commands need to be fixed. - Helm sources are outdated. - Naming across the project sources are inconsistent (impress, visio, etc.) - CI is not configured properly. This list might be incomplete. Let's grind it.
- Loading branch information
1 parent
2d81979
commit 5b1a2b2
Showing
146 changed files
with
12,668 additions
and
1 deletion.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Python | ||
__pycache__ | ||
*.pyc | ||
**/__pycache__ | ||
**/*.pyc | ||
venv | ||
.venv | ||
|
||
# System-specific files | ||
.DS_Store | ||
**/.DS_Store | ||
|
||
# Docker | ||
docker compose.* | ||
env.d | ||
|
||
# Docs | ||
docs | ||
*.md | ||
*.log | ||
|
||
# Development/test cache & configurations | ||
data | ||
.cache | ||
.circleci | ||
.git | ||
.vscode | ||
.iml | ||
.idea | ||
db.sqlite3 | ||
.mypy_cache | ||
.pylint.d | ||
.pytest_cache | ||
|
||
# Frontend | ||
node_modules |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<!--- | ||
Thanks for filing an issue 😄 ! Before you submit, please read the following: | ||
Check the other issue templates if you are trying to submit a bug report, feature request, or question | ||
Search open/closed issues before submitting since someone might have asked the same thing before! | ||
--> |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
--- | ||
name: 🐛 Bug Report | ||
about: If something is not working as expected 🤔. | ||
|
||
--- | ||
|
||
## Bug Report | ||
|
||
**Problematic behavior** | ||
A clear and concise description of the behavior. | ||
|
||
**Expected behavior/code** | ||
A clear and concise description of what you expected to happen (or code). | ||
|
||
**Steps to Reproduce** | ||
1. Do this... | ||
2. Then this... | ||
3. And then the bug happens! | ||
|
||
**Environment** | ||
- Impress version: | ||
- Platform: | ||
|
||
**Possible Solution** | ||
<!--- Only if you have suggestions on a fix for the bug --> | ||
|
||
**Additional context/Screenshots** | ||
Add any other context about the problem here. If applicable, add screenshots to help explain. |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
name: ✨ Feature Request | ||
about: I have a suggestion (and may want to build it 💪)! | ||
|
||
--- | ||
|
||
## Feature Request | ||
|
||
**Is your feature request related to a problem or unsupported use case? Please describe.** | ||
A clear and concise description of what the problem is. For example: I need to do some task and I have an issue... | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. Add any considered drawbacks. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Discovery, Documentation, Adoption, Migration Strategy** | ||
If you can, explain how users will be able to use this and possibly write out a version the docs (if applicable). | ||
Maybe a screenshot or design? | ||
|
||
**Do you want to work on it through a Pull Request?** | ||
<!-- Make sure to coordinate with us before you spend too much time working on an implementation! --> |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
name: 🤗 Support Question | ||
about: If you have a question 💬, or something was not clear from the docs! | ||
|
||
--- | ||
|
||
<!-- ^ Click "Preview" for a nicer view! ^ | ||
We primarily use GitHub as an issue tracker. If however you're encountering an issue not covered in the docs, we may be able to help! --> | ||
|
||
--- | ||
|
||
Please make sure you have read our [main Readme](https://github.com/numerique-gouv/impress). | ||
|
||
Also make sure it was not already answered in [an open or close issue](https://github.com/numerique-gouv/impress/issues). | ||
|
||
If your question was not covered, and you feel like it should be, fire away! We'd love to improve our docs! 👌 | ||
|
||
**Topic** | ||
What's the general area of your question: for example, docker setup, database schema, search functionality,... | ||
|
||
**Question** | ||
Try to be as specific as possible so we can help you as best we can. Please be patient 🙏 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
## Purpose | ||
|
||
Description... | ||
|
||
|
||
## Proposal | ||
|
||
Description... | ||
|
||
- [] item 1... | ||
- [] item 2... |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
name: Deploy | ||
|
||
on: | ||
push: | ||
tags: | ||
- 'preprod' | ||
- 'production' | ||
|
||
|
||
jobs: | ||
notify-argocd: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- | ||
uses: actions/create-github-app-token@v1 | ||
id: app-token | ||
with: | ||
app-id: ${{ secrets.APP_ID }} | ||
private-key: ${{ secrets.PRIVATE_KEY }} | ||
owner: ${{ github.repository_owner }} | ||
repositories: "impress,secrets" | ||
- | ||
name: Checkout repository | ||
uses: actions/checkout@v2 | ||
with: | ||
submodules: recursive | ||
token: ${{ steps.app-token.outputs.token }} | ||
- | ||
name: Load sops secrets | ||
uses: rouja/actions-sops@main | ||
with: | ||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env | ||
age-key: ${{ secrets.SOPS_PRIVATE }} | ||
- | ||
name: Call argocd github webhook | ||
run: | | ||
data='{"ref": "'$GITHUB_REF'","repository": {"html_url":"'$GITHUB_SERVER_URL'/'$GITHUB_REPOSITORY'"}}' | ||
sig=$(echo -n ${data} | openssl dgst -sha1 -hmac ''${ARGOCD_WEBHOOK_SECRET}'' | awk '{print "X-Hub-Signature: sha1="$2}') | ||
curl -X POST -H 'X-GitHub-Event:push' -H "Content-Type: application/json" -H "${sig}" --data "${data}" $ARGOCD_WEBHOOK_URL | ||
sig=$(echo -n ${data} | openssl dgst -sha1 -hmac ''${ARGOCD_PRODUCTION_WEBHOOK_SECRET}'' | awk '{print "X-Hub-Signature: sha1="$2}') | ||
curl -X POST -H 'X-GitHub-Event:push' -H "Content-Type: application/json" -H "${sig}" --data "${data}" $ARGOCD_PRODUCTION_WEBHOOK_URL | ||
start-test-on-preprod: | ||
needs: | ||
- notify-argocd | ||
runs-on: ubuntu-latest | ||
if: startsWith(github.event.ref, 'refs/tags/preprod') | ||
steps: | ||
- | ||
name: Debug | ||
run: | | ||
echo "Start test when preprod is ready" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,185 @@ | ||
name: Docker Hub Workflow | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- 'main' | ||
tags: | ||
- 'v*' | ||
pull_request: | ||
branches: | ||
- 'main' | ||
|
||
env: | ||
DOCKER_USER: 1001:127 | ||
|
||
jobs: | ||
build-and-push-backend: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- | ||
uses: actions/create-github-app-token@v1 | ||
id: app-token | ||
with: | ||
app-id: ${{ secrets.APP_ID }} | ||
private-key: ${{ secrets.PRIVATE_KEY }} | ||
owner: ${{ github.repository_owner }} | ||
repositories: "impress,secrets" | ||
- | ||
name: Checkout repository | ||
uses: actions/checkout@v2 | ||
with: | ||
submodules: recursive | ||
token: ${{ steps.app-token.outputs.token }} | ||
- | ||
name: Load sops secrets | ||
uses: rouja/actions-sops@main | ||
with: | ||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env | ||
age-key: ${{ secrets.SOPS_PRIVATE }} | ||
- | ||
name: Docker meta | ||
id: meta | ||
uses: docker/metadata-action@v5 | ||
with: | ||
images: lasuite/impress-backend | ||
- | ||
name: Login to DockerHub | ||
if: github.event_name != 'pull_request' | ||
run: echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin | ||
- | ||
name: Build and push | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
target: backend-production | ||
build-args: DOCKER_USER=${{ env.DOCKER_USER }}:-1000 | ||
push: ${{ github.event_name != 'pull_request' }} | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
|
||
build-and-push-frontend: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- | ||
uses: actions/create-github-app-token@v1 | ||
id: app-token | ||
with: | ||
app-id: ${{ secrets.APP_ID }} | ||
private-key: ${{ secrets.PRIVATE_KEY }} | ||
owner: ${{ github.repository_owner }} | ||
repositories: "impress,secrets" | ||
- | ||
name: Checkout repository | ||
uses: actions/checkout@v2 | ||
with: | ||
submodules: recursive | ||
token: ${{ steps.app-token.outputs.token }} | ||
- | ||
name: Load sops secrets | ||
uses: rouja/actions-sops@main | ||
with: | ||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env | ||
age-key: ${{ secrets.SOPS_PRIVATE }} | ||
- | ||
name: Docker meta | ||
id: meta | ||
uses: docker/metadata-action@v5 | ||
with: | ||
images: lasuite/impress-frontend | ||
- | ||
name: Login to DockerHub | ||
if: github.event_name != 'pull_request' | ||
run: echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin | ||
- | ||
name: Build and push | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
file: ./src/frontend/Dockerfile | ||
target: frontend-production | ||
build-args: DOCKER_USER=${{ env.DOCKER_USER }}:-1000 | ||
push: ${{ github.event_name != 'pull_request' }} | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
|
||
build-and-push-y-webrtc-signaling: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- | ||
uses: actions/create-github-app-token@v1 | ||
id: app-token | ||
with: | ||
app-id: ${{ secrets.APP_ID }} | ||
private-key: ${{ secrets.PRIVATE_KEY }} | ||
owner: ${{ github.repository_owner }} | ||
repositories: "impress,secrets" | ||
- | ||
name: Checkout repository | ||
uses: actions/checkout@v2 | ||
with: | ||
submodules: recursive | ||
token: ${{ steps.app-token.outputs.token }} | ||
- | ||
name: Load sops secrets | ||
uses: rouja/actions-sops@main | ||
with: | ||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env | ||
age-key: ${{ secrets.SOPS_PRIVATE }} | ||
- | ||
name: Docker meta | ||
id: meta | ||
uses: docker/metadata-action@v5 | ||
with: | ||
images: lasuite/impress-y-webrtc-signaling | ||
- | ||
name: Login to DockerHub | ||
if: github.event_name != 'pull_request' | ||
run: echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin | ||
- | ||
name: Build and push | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
file: ./src/frontend/Dockerfile | ||
target: y-webrtc-signaling | ||
build-args: DOCKER_USER=${{ env.DOCKER_USER }}:-1000 | ||
push: ${{ github.event_name != 'pull_request' }} | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
|
||
notify-argocd: | ||
needs: | ||
- build-and-push-frontend | ||
- build-and-push-backend | ||
runs-on: ubuntu-latest | ||
if: | | ||
github.event_name != 'pull_request' | ||
steps: | ||
- | ||
uses: actions/create-github-app-token@v1 | ||
id: app-token | ||
with: | ||
app-id: ${{ secrets.APP_ID }} | ||
private-key: ${{ secrets.PRIVATE_KEY }} | ||
owner: ${{ github.repository_owner }} | ||
repositories: "impress,secrets" | ||
- | ||
name: Checkout repository | ||
uses: actions/checkout@v2 | ||
with: | ||
submodules: recursive | ||
token: ${{ steps.app-token.outputs.token }} | ||
- | ||
name: Load sops secrets | ||
uses: rouja/actions-sops@main | ||
with: | ||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env | ||
age-key: ${{ secrets.SOPS_PRIVATE }} | ||
- | ||
name: Call argocd github webhook | ||
run: | | ||
data='{"ref": "'$GITHUB_REF'","repository": {"html_url":"'$GITHUB_SERVER_URL'/'$GITHUB_REPOSITORY'"}}' | ||
sig=$(echo -n ${data} | openssl dgst -sha1 -hmac ''${ARGOCD_WEBHOOK_SECRET}'' | awk '{print "X-Hub-Signature: sha1="$2}') | ||
curl -X POST -H 'X-GitHub-Event:push' -H "Content-Type: application/json" -H "${sig}" --data "${data}" $ARGOCD_WEBHOOK_URL |
Oops, something went wrong.