name: CI on: pull_request: push: branches: main jobs: tests: runs-on: ubuntu-20.04 name: Test (${{matrix.elixir}}/${{matrix.otp}}) strategy: matrix: otp: [23.x, 24.x, 25.x] elixir: [1.13.x, 1.14.x] steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: otp-version: ${{matrix.otp}} elixir-version: ${{matrix.elixir}} - uses: actions/cache@v3 id: cache with: path: | deps _build key: ${{ runner.os }}-mix-${{matrix.otp}}-${{matrix.elixir}}-${{ hashFiles('**/mix.lock') }} restore-keys: | ${{ runner.os }}-mix-${{matrix.otp}}-${{matrix.elixir}}- - name: Install Dependencies if: steps.cache.outputs.cache-hit != 'true' run: mix deps.get - name: Run Tests run: mix test # integration_tests: # runs-on: ubuntu-latest # name: Integration Test (${{matrix.elixir}}/${{matrix.otp}}) # defaults: # run: # working-directory: "./integration_test/temple_demo" # services: # db: # image: postgres:12 # env: # POSTGRES_USER: postgres # POSTGRES_PASSWORD: postgres # POSTGRES_DB: temple_demo_test # ports: ['5432:5432'] # options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 # steps: # - uses: actions/checkout@v2 # - uses: erlef/setup-beam@v1 # with: # otp-version: 24.x # elixir-version: 1.13.x # - uses: actions/cache@v3 # with: # path: | # deps # _build # key: ${{ runner.os }}-mix-24-1.13-${{ hashFiles('**/mix.lock') }} # restore-keys: | # ${{ runner.os }}-mix-24-1.13- # - name: Install Dependencies # if: steps.cache.outputs.cache-hit != 'true' # run: mix deps.get # - name: Run Tests # run: mix test || mix test --failed || mix test --failed # env: # MIX_ENV: test # - uses: actions/upload-artifact@v2 # if: failure() # with: # name: screenshots # path: screenshots/ formatter: runs-on: ubuntu-latest name: Formatter (1.14.x.x/25.x) steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: otp-version: 25.x elixir-version: 1.14.x - uses: actions/cache@v3 id: cache with: path: | deps _build key: ${{ runner.os }}-mix-23-1.14-${{ hashFiles('**/mix.lock') }} restore-keys: | ${{ runner.os }}-mix-23-1.14- - name: Install Dependencies if: steps.cache.outputs.cache-hit != 'true' run: mix deps.get - name: Run Formatter run: mix format --check-formatted