weacast/weacast-loader

View on GitHub
.github/workflows/main.yaml

Summary

Maintainability
Test Coverage
name: ci
on: [ push, workflow_dispatch ]

jobs:
  run_tests:
    name: Run tests
    if: ${{ !contains(github.event.head_commit.message, 'skip tests') }}
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout repo
        uses: actions/checkout@v4
        with:
          submodules: true
      - name: Init runner
        run: bash ./scripts/init_runner.sh ${{ github.job }}
      - name: Setup workspace
        env:
          KALISIO_GITHUB_URL: ${{ secrets.KALISIO_GITHUB_URL }}
        run: bash ./scripts/setup_workspace.sh
      - name: Run tests
        env:
          SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }}
        run: bash ./scripts/run_tests.sh -c -r ${{ github.job }}

  additional_tests:
    strategy:
      fail-fast: false
      matrix:
        node: [ 18, 20, 22 ]
        mongo: [ 5, 6, 7 ]
        exclude:
          - node: 20
            mongo: 7
    name: Additional tests
    if: ${{ contains(github.event.head_commit.message, 'additional tests') }}
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout repo
        uses: actions/checkout@v4
        with:
          submodules: true
      - name: Init runner
        run: bash ./scripts/init_runner.sh ${{ github.job }}
      - name: Setup workspace
        env:
          KALISIO_GITHUB_URL: ${{ secrets.KALISIO_GITHUB_URL }}
        run: bash ./scripts/setup_workspace.sh -n ${{ matrix.node }}
      - name: Run tests
        env:
          SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }}
        run: bash ./scripts/run_tests.sh -n ${{ matrix.node }} -m ${{ matrix.mongo }}

  build_model:
    strategy:
      fail-fast: false
      matrix:
        model: [ 'gfs', 'arpege', 'arome' ]
        node: [ 20 ]
        debian: [ 'bookworm' ]
    name: Build models
    if: ${{ !contains(github.event.head_commit.message, 'skip build') }}
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout repo
        uses: actions/checkout@v4
        with:
          submodules: true
      - name: Init runner
        run: bash ./scripts/init_runner.sh ${{ github.job }}
      - name: Setup workspace
        env:
          KALISIO_GITHUB_URL: ${{ secrets.KALISIO_GITHUB_URL }}
        run: bash ./scripts/setup_workspace.sh
      - name: Build image
        env:
          SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }}
        run: bash ./scripts/build.sh -m ${{ matrix.model }} -p -r "${{ github.job }} ${{ matrix.model }}" -n ${{ matrix.node }} -d ${{ matrix.debian }}

  build_loader:
    needs: build_model
    strategy:
      fail-fast: false
      matrix:
        model: [ 'gfs', 'arpege', 'arome' ]
        loader: [ 'world', 'isobaric-world', 'europe', 'isobaric-europe', 'france', 'france-high' ]
        node: [ 20 ]
        debian: [ 'bookworm' ]
        exclude:
          - model: 'gfs'
            loader: 'europe'
          - model: 'gfs'
            loader: 'isobaric-europe'
          - model: 'gfs'
            loader: 'france'
          - model: 'gfs'
            loader: 'france-high'
          - model: 'arpege'
            loader: 'france'
          - model: 'arpege'
            loader: 'france-high'
          - model: 'arome'
            loader: 'world'
          - model: 'arome'
            loader: 'isobaric-world'
          - model: 'arome'
            loader: 'europe'
          - model: 'arome'
            loader: 'isobaric-europe'
    name: Build loaders
    if: ${{ !contains(github.event.head_commit.message, 'skip build') }}
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout repo
        uses: actions/checkout@v4
        with:
          submodules: true
      - name: Init runner
        run: bash ./scripts/init_runner.sh ${{ github.job }}
      - name: Setup workspace
        env:
          KALISIO_GITHUB_URL: ${{ secrets.KALISIO_GITHUB_URL }}
        run: bash ./scripts/setup_workspace.sh
      - name: Build image
        env:
          SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }}
        run: bash ./scripts/build.sh -m ${{ matrix.model }} -l ${{ matrix.loader }} -p -r "${{ github.job }} ${{ matrix.model }}-${{ matrix.loader }}" -n ${{ matrix.node }} -d ${{ matrix.debian }}