Unverified Commit e1b90a47 authored by Tom Moulard's avatar Tom Moulard Committed by GitHub
Browse files

chore: add linting using yamllint, and update CI (#38)

parent 2a5733f5
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
ALERTMANAGER_IMAGE_VERSION=
BAZARR_GPID=
BAZARR_IMAGE_VERSION=
BAZARR_PUID=
BITWARDEN_IMAGE_VERSION=
CADVISOR_IMAGE_VERSION=
CIAO_IMAGE_VERSION=
CIAO_PROMETHEUS_ENABLED=
CODIMD_IMAGE_VERSION=
ELASTICSEARCH_CLUSTER_NAME=
ELASTICSEARCH_DISCOVERY_TYPE=
ELASTICSEARCH_IMAGE_VERSION=
@@ -11,6 +18,9 @@ FRAMADATE_MYSQL_DATABASE=
FRAMADATE_MYSQL_PASSWORD=
FRAMADATE_MYSQL_ROOT_PASSWORD=
FRAMADATE_MYSQL_USER=
GITLAB_IMAGE_VERSION=
GITLAB_RUNNER_IMAGE_VERSION=
GRAFANA_IMAGE_VERSION=
HOME=
JACKETT_GPID=
JACKETT_IMAGE_VERSION=
@@ -25,10 +35,16 @@ NEXTCLOUD_MYSQL_PASSWORD=
NEXTCLOUD_MYSQL_ROOT_PASSWORD=
NEXTCLOUD_MYSQL_USER=
NGINX_IMAGE_VERSION=
NODE_EXPORTER_IMAGE_VERSION=
PROMETHEUS_IMAGE_VERSION=
REMOTELY_IMAGE_VERSION=
ROOT_EMAIL=
SEARXNG_IMAGE_VERSION=
SHARELATEX_IMAGE_VERSION=
SITE=
SONARR_GPID=
SONARR_IMAGE_VERSION=
SONARR_PUID=
TOR_CONTACT_GPG_FINGERPRINT=
TOR_RELAY_BANDWIDTH_BURST=
TOR_RELAY_BANDWIDTH_RATE=
@@ -59,3 +75,4 @@ WATCHTOWER_CLEANUP=
WATCHTOWER_IMAGE_VERSION=
WATCHTOWER_ROLLING_RESTART=
WATCHTOWER_SCHEDULE=
WORDPRESS_IMAGE_VERSION=
+1 −1
Original line number Diff line number Diff line
# These are supported funding model platforms

github: tommoulard
github: 'tommoulard'
+79 −183
Original line number Diff line number Diff line
name: Tests
name: 'Tests'

on:
  push:
on: # yamllint disable-line rule:truthy
  pull_request:
    branches:
      - '*'
  push: {}

jobs:
  Config-test:
    runs-on: ubuntu-latest
    runs-on: 'ubuntu-latest'
    steps:
      - uses: actions/checkout@v2
      - name: Run tests
        run: ./test.sh
      - uses: actions/upload-artifact@v2
        if: failure()
      - uses: 'actions/checkout@v3'
      - name: 'DEBUG'
        run: 'docker version && docker compose version'
      - name: 'Run tests'
        run: './test.sh'
      - uses: 'actions/upload-artifact@v3'
        if: 'failure()'
        with:
          name: test-artifacts
          name: 'test-artifacts'
          path: |
            log.log
            *.patch
  Health-checks-traefik:
    runs-on: ubuntu-latest
    env:
      SERVICE: traefik
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
  Health-checks-codimd:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
      service_name: 'codimd'
      timeout-minutes: 5
# Health-checks-grafana:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
#   with:
#     sus: 'mkdir -p ./grafana/grafana/ ./grafana/prometheus/data/'
#     service_name: 'grafana'
# Health-checks-hits:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
#   with:
#     sus: 'mkdir -p ./hits/postgresql/data'
#     service_name: 'hits'
# Health-checks-hugo:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
#   with:
#     service_name: 'hugo'
  Health-checks-jackett:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
      service_name: 'jackett'
# Health-checks-mastodon:
#   uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
#   with:
#     service_name: 'mastodon'
  Health-checks-nextcloud:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
      service_name: 'nextcloud'
  Health-checks-nginx:
    runs-on: ubuntu-latest
    env:
      SERVICE: nginx
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
  Health-checks-hugo:
    runs-on: ubuntu-latest
    env:
      SERVICE: hugo
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
      service_name: 'nginx'
  Health-checks-searxng:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
  Health-checks-peertube:
    runs-on: ubuntu-latest
    env:
      SERVICE: peertube
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
      service_name: 'searxng'
  Health-checks-sharelatex:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
  Health-checks-transmission:
    runs-on: ubuntu-latest
    env:
      SERVICE: transmission
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
      service_name: 'sharelatex'
  Health-checks-streama:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
  Health-checks-nextcloud:
    runs-on: ubuntu-latest
    env:
      SERVICE: nextcloud
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
      sus: 'touch streama/streama.mv.db streama/streama.trace.db'
      service_name: 'streama'
  Health-checks-traefik:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
  Health-checks-jackett:
    runs-on: ubuntu-latest
    env:
      SERVICE: jackett
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
      service_name: 'traefik'
  Health-checks-transmission:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
  Health-checks-codimd:
    runs-on: ubuntu-latest
    env:
      SERVICE: codimd
    steps:
      - uses: actions/checkout@v2
      - name: Caching
        uses: actions/cache@v2
      service_name: 'transmission'
  Health-checks-wordpress:
    uses: 'tomMoulard/make-my-server/.github/workflows/healthcheck.workflow.tmpl.yml@feat/yamllint'
    with:
          path: /var/lib/docker/
          key: ${{ runner.os }}-health-${{ github.job }}
      - name: Build the docker-compose stack
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml up -d
      - name: Waiting for service startup (10s)
        run: sleep 10s
      - name: Check running containers
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps
      - name: Check health
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml ps | grep "Up (healthy)"
      - name: Export logs
        if: ${{ failure() }}
        run: docker-compose -f docker-compose.yml -f ${SERVICE}/docker-compose.${SERVICE}.yml logs
      service_name: 'wordpress'
  Lint:
    runs-on: 'ubuntu-latest'
    steps:
      - uses: 'actions/checkout@v3'
      - name: 'Install yamllint'
        run: 'pip install yamllint'
      - name: 'yamllint version'
        run: 'yamllint --version'
      - name: 'Lint YAML files'
        run: 'yamllint --format github .'
+50 −0
Original line number Diff line number Diff line
on: # yamllint disable-line rule:truthy
  workflow_call:
    inputs:
      sus:
        description: 'a StartUp Script to run beforehand'
        required: false
        type: 'string'
      service_name:
        description: 'A service name to check health check uppon'
        required: true
        type: 'string'
      timeout-minutes:
        description: 'a timeout to waitfor running containers'
        required: false
        default: 2
        type: 'number'

jobs:
  health-check:
    runs-on: 'ubuntu-latest'
    steps:
      - uses: 'actions/checkout@v3'
      - name: 'Caching'
        uses: 'actions/cache@v3'
        with:
          path: '/var/lib/docker/'
          key: '${{ runner.os }}-health-${{ github.job }}'
      - name: 'Setting up job'
        if: '${{ inputs.sus }}'
        run: |
          ${{ inputs.sus }}
      - name: 'Starting the docker-compose stack'
        run: |
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml up -d
      - name: 'Waiting for running containers'
        timeout-minutes: '${{ inputs.timeout-minutes }}'
        run: |
          while :; do
            echo "sleeping for 5s"
            sleep 5s;
            docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml ps | grep "starting" || exit 0
          done
      - name: 'Check health'
        run: |
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml ps | grep "Up (healthy)"
      - name: 'Export logs'
        if: '${{ failure() }}'
        run: |
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml ps
          docker-compose -f docker-compose.yml -f ${{inputs.service_name}}/docker-compose.${{inputs.service_name}}.yml logs

.yamllint

0 → 100644
+45 −0
Original line number Diff line number Diff line
# ref: https://yamllint.readthedocs.io/en/stable/configuration.html

extends: 'default'

ignore: |
  homer/**
  matrix/**
  huginn/**
  registry/**
  registery/**
  results.json
  peertube/config/custom-environment-variables.yaml

  .git/
  peertube/config/default.yaml
  test_config.yml
# .github/

# https://yamllint.readthedocs.io/en/stable/rules.html
rules:
  document-start:
    present: false
  comments:
    min-spaces-from-content: 1
  line-length:
    allow-non-breakable-inline-mappings: true
    ignore:
      - '.github/workflows/healthcheck.workflow.tmpl.yml'
      - '.github/workflows/dockerpublish.yml'
  truthy: 'enable'
  indentation:
    spaces: 2
  empty-values: 'enable'
  float-values:
    forbid-inf: true
    forbid-nan: true
    forbid-scientific-notation: true
    require-numeral-before-decimal: true
  octal-values: 'enable'
  quoted-strings:
    quote-type: 'single'
    required: true
    allow-quoted-quotes: false

# vim: ft=yaml
Loading