Skip to content

Commit

Permalink
ci: a few minor improvements (#2038)
Browse files Browse the repository at this point in the history
  • Loading branch information
thecristen authored May 8, 2024
1 parent b418fc8 commit 703d8f2
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 113 deletions.
31 changes: 0 additions & 31 deletions .github/actions/build-app/action.yml

This file was deleted.

16 changes: 0 additions & 16 deletions .github/workflows/docker.yml

This file was deleted.

144 changes: 78 additions & 66 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
name: CI
on:
pull_request:
# Don't bother running if it's just a script or docs change
paths-ignore:
- "bin/**"
- Dockerfile
- "*.sh"
- ".github/workflows/**"
- "*.md"
- "integration/**"
- AUTHORS

concurrency:
Expand All @@ -25,144 +23,158 @@ jobs:
name: File changes
uses: ./.github/workflows/changed-files.yml
with:
# If it's a Dependabot PR, or a push to main, we want to run every test
force: ${{ github.event_name == 'push' || contains(github.head_ref, 'dependabot/hex') || contains(github.head_ref, 'dependabot/npm_and_yarn') }}
# If it's a Dependabot PR, we want to run every test
force: ${{ contains(github.head_ref, 'dependabot/') }}

build_app:
name: Build app (or restore from cache)
build_image:
name: Build Docker image
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.any }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/build-app
- uses: actions/checkout@v4
- run: docker build .

eslintts:
name: Linting / TypeScript
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.ts }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:lint:ts
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:lint:ts

jslint:
name: Linting / JavaScript
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.js }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:lint:js
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:lint:js

stylelint:
name: Linting / CSS
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.scss }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:lint:scss
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:lint:scss

elixirlint:
name: Linting / Elixir
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.ex }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: git fetch origin main:main
- run: npm run ci:lint:ex
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: git fetch origin main:main
- run: npm run ci:lint:ex

build_app:
name: Build application and assets
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- name: Cache _build
uses: actions/cache@v4
with:
path: |
_build
priv
react_renderer/dist/app.js
key: ci-application-cache-${{ github.sha }}
- run: npm --prefix assets run webpack:build
- run: npm --prefix assets run webpack:build:react
- run: mix compile --all-warnings

elixir_unit:
name: Unit tests / Elixir / --exclude wallaby --cover
name: Unit tests / Elixir / mix coveralls.html
runs-on: ubuntu-latest
needs: [file_changes, build_app]
if: ${{ needs.file_changes.outputs.ex }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- uses: actions/cache/restore@v4
with:
path: |
_build
priv
react_renderer/dist/app.js
key: ci-application-cache-${{ github.sha }}
- env:
RECAPTCHA_PUBLIC_KEY: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
RECAPTCHA_PRIVATE_KEY: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
REACT_BUILD_PATH: react_renderer/dist/app.js
run: npm run ci:unit:exunit
- name: Upload coverage artifact
if: ${{ always() && github.event.pull_request }}
uses: actions/upload-artifact@v4
with:
name: Elixir test coverage report
path: cover/
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- uses: actions/cache/restore@v4
with:
path: |
_build
priv
react_renderer/dist/app.js
key: ci-application-cache-${{ github.sha }}
restore-keys: |
ci-application-cache-
- run: npm run ci:unit:exunit
- name: Upload coverage artifact
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: Elixir test coverage report
path: cover/

js_unit_1:
name: Unit tests / JavaScript / Mocha
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.js }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:unit:mocha
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:unit:mocha

js_unit_2:
name: Unit tests / JavaScript & TypeScript / Jest
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.ts || needs.file_changes.outputs.js }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: TZ="America/New_York" npm run ci:unit:jest
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: TZ="America/New_York" npm run ci:unit:jest

type_dialyzer:
name: Type checks / Elixir
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.ex }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- uses: mbta/actions/dialyzer@v2
with:
cmd-line: "--ignore-exit-status"
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- uses: mbta/actions/dialyzer@v2
with:
cmd-line: "--ignore-exit-status"

type_typescript:
name: Type checks / TypeScript
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.ts }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:types:ts
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:types:ts

elixir_format_check:
name: Formatting / Elixir
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.ex }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:format:ex
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:format:ex

js_format_check:
name: Formatting / JavaScript & TypeScript
runs-on: ubuntu-latest
needs: file_changes
if: ${{ needs.file_changes.outputs.js || needs.file_changes.outputs.ts }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:format:ts
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-all
- run: npm run ci:format:ts

0 comments on commit 703d8f2

Please sign in to comment.