Support localized cronjob scheduling with ambiguous and gap DateTime instances #180
Workflow file for this run
This file contains hidden or 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
| on: | |
| pull_request: | |
| branches: | |
| - "*" | |
| push: | |
| branches: | |
| - "main" | |
| tags: | |
| - "v*" | |
| env: | |
| BUILD_EMBEDDED: true | |
| DIALYZER_PLT_PRIV: true | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| DEFAULT_ELIXIR_VERSION: 1.17 | |
| DEFAULT_OTP_VERSION: 27.1 | |
| jobs: | |
| format: | |
| name: Check Formatting | |
| runs-on: ubuntu-latest | |
| env: | |
| MIX_ENV: dev | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: erlef/setup-elixir@v1 | |
| id: setupBEAM | |
| with: | |
| otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
| elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: deps | |
| key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.get | |
| - run: mix format --check-formatted | |
| test: | |
| name: Run Tests & Submit Coverage | |
| env: | |
| MIX_ENV: test | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - otp: "23.3" | |
| elixir: "1.14" | |
| runs-on: ubuntu-20.04 | |
| - otp: "26.2" | |
| elixir: "1.16" | |
| runs-on: ubuntu-22.04 | |
| - otp: "27.1" | |
| elixir: "main" | |
| runs-on: ubuntu-latest | |
| - runs-on: ubuntu-22.04 | |
| # otp: '${{ env.DEFAULT_OTP_VERSION }}' | |
| # elixir: '${{ env.DEFAULT_ELIXIR_VERSION }}' | |
| enable_coverage_export: "true" | |
| runs-on: ${{ matrix.runs-on }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: erlef/setup-elixir@v1 | |
| id: setupBEAM | |
| with: | |
| otp-version: ${{ matrix.otp || env.DEFAULT_OTP_VERSION }} | |
| elixir-version: ${{ matrix.elixir || env.DEFAULT_ELIXIR_VERSION }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: deps | |
| key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.get | |
| - uses: actions/cache@v4 | |
| with: | |
| path: _build/${{ env.MIX_ENV }} | |
| key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.compile --skip-umbrella-children | |
| - run: mix compile --warning-as-errors | |
| - run: mix coveralls.github | |
| if: ${{ matrix.enable_coverage_export == 'true' }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - run: mix test | |
| if: ${{ !matrix.enable_coverage_export }} | |
| credo: | |
| name: Check Credo | |
| runs-on: ubuntu-latest | |
| env: | |
| MIX_ENV: dev | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: erlef/setup-elixir@v1 | |
| id: setupBEAM | |
| with: | |
| otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
| elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: deps | |
| key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.get | |
| - uses: actions/cache@v4 | |
| with: | |
| path: _build/${{ env.MIX_ENV }} | |
| key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.compile --skip-umbrella-children | |
| - run: mix compile --warning-as-errors | |
| - run: mix credo --strict | |
| dialyzer_plt: | |
| name: Generate Dialyzer PLT | |
| runs-on: ubuntu-latest | |
| env: | |
| MIX_ENV: dev | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: erlef/setup-elixir@v1 | |
| id: setupBEAM | |
| with: | |
| otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
| elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: deps | |
| key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.get | |
| - uses: actions/cache@v4 | |
| with: | |
| path: _build/${{ env.MIX_ENV }} | |
| key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.compile --skip-umbrella-children | |
| - run: mix compile --warning-as-errors | |
| - uses: actions/cache@v4 | |
| with: | |
| path: priv/plts/ | |
| key: dialyzer_plt_${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| dialyzer_plt_${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix dialyzer --plt | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: dialyzer_plt_${{ env.MIX_ENV }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }} | |
| path: priv/plts/ | |
| dialyzer_test: | |
| name: "Check Dialyzer" | |
| runs-on: ubuntu-latest | |
| needs: ["dialyzer_plt"] | |
| env: | |
| MIX_ENV: dev | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: erlef/setup-elixir@v1 | |
| id: setupBEAM | |
| with: | |
| otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
| elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: deps | |
| key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.get | |
| - uses: actions/cache@v4 | |
| with: | |
| path: _build/${{ env.MIX_ENV }} | |
| key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.compile --skip-umbrella-children | |
| - run: mix compile --warning-as-errors | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: dialyzer_plt_${{ env.MIX_ENV }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }} | |
| path: priv/plts/ | |
| - run: mix dialyzer | |
| docs: | |
| name: "Generate Docs" | |
| runs-on: ubuntu-latest | |
| env: | |
| MIX_ENV: dev | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: erlef/setup-elixir@v1 | |
| id: setupBEAM | |
| with: | |
| otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
| elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: deps | |
| key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.get | |
| - uses: actions/cache@v4 | |
| with: | |
| path: _build/${{ env.MIX_ENV }} | |
| key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
| restore-keys: | | |
| compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
| - run: mix deps.compile --skip-umbrella-children | |
| - run: mix compile --warning-as-errors | |
| - run: mix docs | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: docs | |
| path: doc |