Initial comit - Clone

This commit is contained in:
2024-03-05 22:01:20 +01:00
commit 385cf8e5aa
727 changed files with 164567 additions and 0 deletions

29
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,29 @@
---
name: Bug report
about: Create a report
title: "[BUG]"
labels: bug
assignees: ''
---
**Describe the bug / Description du bogue**
A clear and concise description of what the bug is and how to reproduce it.
Adding a failing unit test showing the error would be appreciate.
Do not hesitate to add screenshots.
Une définition claire et concise du bogue, ainsi que la description de la
manière de le reproduire.
Des screenshots peuvent aider à la compréhension du problème.
**Expected behavior / Comportement attendu**
A clear and concise description of what you expected to happen.
Une définition claire et concise de ce qui était attendu.
**Versions**
Version of packages used to reproduce the bug.
Les versions des paquets utilisés pour reproduire le bug.

View File

@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea
title: "[FEATURE REQUEST]"
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

7
.github/ISSUE_TEMPLATE/other.md vendored Normal file
View File

@ -0,0 +1,7 @@
---
name: Other
about: Anything that is neither a bug report nor a feature request
title: ''
labels: ''
assignees: ''
---

14
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "docker"
directory: "docker/"
schedule:
interval: "daily"
- package-ecosystem: "gitsubmodule"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "github-actions"
directory: ".github/workflows/"
schedule:
interval: "daily"

44
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,44 @@
name: build
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest
ocaml-compiler:
- 4.14.x
include:
- os: ubuntu-latest
ocaml-version: 4.08.0
- os: ubuntu-latest
ocaml-version: 5.1.x
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Use Ocaml ${{ matrix.ocaml-compiler }}
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
- name: Setup GeneWeb dependencies + ocamlformat
run: |
opam pin add . -y --no-action
opam depext -y geneweb
opam install -y ./*.opam --deps-only --with-test
opam pin ocamlformat 0.24.1
- name: Make ocamlformat > build > distrib
run: |
opam exec -- ocaml ./configure.ml --release
opam exec -- make build distrib
- name: Make CI tests
run: opam exec -- make ci

29
.github/workflows/doc.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: deploy-doc
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: checkout-code
uses: actions/checkout@v3
- name: setup-ocaml
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: 4.14.0
- name: setup
run: |
opam pin add . -y --no-action
opam depext -y geneweb
opam install -y ./*.opam --deps-only --with-doc
- name: build
run: |
opam exec -- ocaml ./configure.ml
opam exec -- make doc
- name: deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages # The branch the action should deploy to.
folder: _build/default/_doc/_html # The folder the action should deploy.

76
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,76 @@
name: Build Docker image
on:
# Allow manual runs.
workflow_dispatch:
push:
branches:
- master
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
env:
PLATFORMS: linux/arm64/v8,linux/amd64
IMAGE_NAME: "geneweb"
PUSH_IMAGE: ${{ github.ref == 'refs/heads/master' }}
jobs:
build-images:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
- name: Generate date stamp
run: echo "DATESTAMP=$(date +"%Y.%m.%d")" >> $GITHUB_ENV
- name: Generate Docker image metadata
id: docker-meta
uses: docker/metadata-action@v4
with:
images: |
ghcr.io/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
# ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}
tags: |
type=edge,branch=master
type=raw,${{ env.DATESTAMP }}
type=ref,event=tag
type=sha,prefix=,format=short
- name: Setup QEMU
uses: docker/setup-qemu-action@v2
- name: Setup Docker BuildKit
uses: docker/setup-buildx-action@v2
# - name: Login to DockerHub
# if: ${{ env.PUSH_IMAGE == 'true' }}
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
if: ${{ env.PUSH_IMAGE == 'true' }}
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Build and push ${{ env.IMAGE_NAME }} Docker image
uses: docker/build-push-action@v3
with:
target: container
context: docker/
file: docker/Dockerfile
platforms: ${{ env.PLATFORMS }}
push: ${{ env.PUSH_IMAGE }}
tags: ${{ steps.docker-meta.outputs.tags }}
labels: ${{ steps.docker-meta.outputs.labels }}

69
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,69 @@
name: release
on:
push:
tags:
- v**
jobs:
release:
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
ocaml-version: 4.14.0
geneweb-archive: geneweb-macos.zip
- os: ubuntu-latest
ocaml-version: 4.14.0
geneweb-archive: geneweb-linux.zip
- os: windows-latest
ocaml-version: 4.14.0
geneweb-archive: geneweb-windows.zip
runs-on: ${{ matrix.os }}
steps:
- name: checkout
uses: actions/checkout@v3
- name: setup-ocaml
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-version }}
- name: setup
run: |
opam install dune ocamlformat.0.24.1
opam exec -- dune build @fmt
opam pin add . -y --no-action
opam depext -y geneweb
opam install -y ./*.opam --deps-only --with-test
# Build the distribution
- name: Build the distribution
run: |
opam exec -- ocaml ./configure.ml --sosa-legacy --gwdb-legacy --release
opam exec -- make distrib
# Archive distribution for release
- name: Archive Release
uses: thedoctor0/zip-release@0.7.1
with:
type: zip
filename: ${{ matrix.geneweb-archive }}
directory: distribution
# Upload the distribution
- name: Upload distribution to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: distribution/${{ matrix.geneweb-archive }}
tag: ${{ github.ref }}