diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 72e95a5c..45781c9c 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -75,6 +75,7 @@ Our project employs [GitHub Actions](https://github.com/features/actions) for co - [`workflows/apply-labels.yml`](workflows/apply-labels.yml) - [`workflows/auto-merge-release.yml`](workflows/auto-merge-release.yml) +- [`workflows/coding-standards.yml`](workflows/coding-standards.yml) - [`workflows/create-release.yml`](workflows/create-release.yml) - [`workflows/e2e-macos.yml`](workflows/e2e-macos.yml) โ€” **Currently disabled** - [`workflows/e2e-ubuntu.yml`](workflows/e2e-ubuntu.yml) โ€” **Currently disabled** diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml new file mode 100644 index 00000000..10fbc95e --- /dev/null +++ b/.github/workflows/coding-standards.yml @@ -0,0 +1,68 @@ +--- + +on: # yamllint disable-line rule:truthy + pull_request: + branches: + - master + +name: ๐Ÿงน Fix coding standards + +jobs: + commit-linting: + timeout-minutes: 4 + runs-on: ubuntu-latest + concurrency: + cancel-in-progress: true + group: commit-linting-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + permissions: + contents: read + pull-requests: read + steps: + - name: ๐Ÿ“ฆ Check out the codebase + uses: actions/checkout@v4.1.6 + + - name: ๐Ÿง Lint commits using "commitlint" + uses: wagoid/commitlint-github-action@v6.0.1 + with: + configFile: ${{ github.workspace }}/.github/.commitlint.config.mjs + failOnWarnings: false + failOnErrors: true + helpURL: 'https://github.com/conventional-changelog/commitlint/#what-is-commitlint' + + yaml-linting: + timeout-minutes: 4 + runs-on: ubuntu-latest + concurrency: + cancel-in-progress: true + group: yaml-linting-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + permissions: + contents: read + pull-requests: read + steps: + - name: ๐Ÿ“ฆ Check out the codebase + uses: actions/checkout@v4.1.6 + + - name: ๐Ÿง Lint YAML files + uses: ibiqlik/action-yamllint@v3.1.1 + with: + config_file: .github/.yamllint.yaml + file_or_dir: '.' + strict: true + + markdown-linting: + timeout-minutes: 4 + runs-on: ubuntu-latest + concurrency: + cancel-in-progress: true + group: markdown-linting-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + steps: + - name: ๐Ÿ“ฆ Check out the codebase + uses: actions/checkout@v4.1.6 + + - name: ๐Ÿง Lint Markdown files + uses: DavidAnson/markdownlint-cli2-action@v16.0.0 + with: + config: '.github/.markdownlint.json' + globs: | + **/*.md + !CHANGELOG.md diff --git a/README.md b/README.md index d95b7d39..6b2231a4 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@ This repository provides a Docker-powered local development environment for Dock It includes a set of docker-compose files and [Trรฆfik](https://traefik.io/) configuration with SSL support, backed by [mkcert](https://github.com/FiloSottile/mkcert), to enable running a local network with custom DNS provided by [dnsmasq](https://thekelleys.org.uk/dnsmasq/doc.html). This setup facilitates developing microservices locally with access outside the Docker network. -## โ†’ Purpose +## ๐Ÿค” Purpose -**Simplifying Local Development** +### โ†’ Simplifying Local Development Developers often update their `/etc/hosts` file to direct traffic for `yourproject.docker` or `yourproject.domain.docker` to `127.0.0.1`. This approach has several drawbacks: @@ -42,9 +42,9 @@ For **Linux** and **macOS** users, **dnsmasq** provides a solution by eliminatin This repository configures Traefik to work with dnsmasq, providing a system-wide DNS solution for your microservices and enabling DNS and SSL features with local domains. -## โ†’ Benefits for Your Team +## ๐Ÿ‘ Benefits for Team -**Enhance Development Workflow** +### โ†’ Enhance Development Workflow Integrating this Docker Shared Services project into your team's tech stack can significantly enhance your development workflow. This setup is compatible with a wide range of HTTP-based projects, including backend frameworks like Laravel, Symfony, or Spiral, frontend frameworks, and any other services that run in Docker and communicate over HTTP.