Update actions/upload-artifact action to v4 #590
This file contains 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
name: CI | |
on: | |
push: | |
branches: | |
- main | |
- master | |
pull_request: {} | |
concurrency: | |
group: ci-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
name: "Tests" | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Lint | |
run: pnpm lint | |
- name: Run Tests | |
run: pnpm test:ember | |
floating: | |
name: "Floating Dependencies" | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install Dependencies | |
run: pnpm install --no-lockfile | |
- name: Run Tests | |
run: pnpm test:ember | |
node-tests: | |
name: "Node Tests" | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run Node Tests | |
run: pnpm run nodetest | |
docs: | |
name: "Docs" | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Generate docs | |
run: pnpm run docs | |
try-scenarios: | |
name: ${{ matrix.try-scenario }}, ${{ matrix.browser}} | |
runs-on: ubuntu-latest | |
needs: "test" | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
try-scenario: | |
- ember-lts-4.4 | |
- ember-lts-4.8 | |
- ember-lts-4.12 | |
- ember-lts-5.4 | |
- ember-release | |
- ember-beta | |
- ember-canary | |
- ember-lts-4.4-with-plain-html | |
- ember-lts-4.8-with-plain-html | |
- ember-lts-4.12-with-plain-html | |
- ember-beta-with-plain-html | |
- ember-lts-4.4-with-ember-bootstrap-v4 | |
- ember-lts-4.8-with-ember-bootstrap-v4 | |
- ember-lts-4.12-with-ember-bootstrap-v4 | |
- ember-beta-with-ember-bootstrap-v4 | |
- ember-lts-4.4-with-ember-bootstrap-v5 | |
- ember-lts-4.8-with-ember-bootstrap-v5 | |
- ember-lts-4.12-with-ember-bootstrap-v5 | |
- ember-beta-with-ember-bootstrap-v5 | |
- embroider-safe | |
- embroider-optimized | |
browser: | |
- Chrome | |
include: | |
- try-scenario: ember-release | |
browser: Firefox | |
- try-scenario: ember-default-with-ember-bootstrap-v4 | |
browser: Firefox | |
- try-scenario: ember-default-with-ember-bootstrap-v5 | |
browser: Firefox | |
- try-scenario: ember-default-with-plain-html | |
browser: Firefox | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Run Tests | |
run: ./node_modules/.bin/ember try:one ${{ matrix.try-scenario }} --skip-cleanup=true --- ember test --launch ${{ matrix.browser }} | |
coverage-generate: | |
name: Coverage Report (${{ matrix.try-scenario }}) | |
needs: "test" | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
try-scenario: | |
- default | |
- plain-html | |
- bs4 | |
- bs5 | |
browser: | |
- Chrome | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Generate Coverage Report | |
run: pnpm run test:cov:${{ matrix.try-scenario }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: lcov-${{ matrix.try-scenario }}.info | |
path: coverage/lcov.info | |
coverage-send: | |
name: Send Coverage Report | |
runs-on: ubuntu-latest | |
needs: ["try-scenarios", "coverage-generate"] | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Download coverage report parts | |
uses: actions/download-artifact@v3 | |
with: | |
path: coverage | |
- name: Combine coverage report parts | |
run: ./node_modules/.bin/lcov-result-merger "coverage/**/*" "./lcov.info" | |
- name: Publish coverage report | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: "./lcov.info" | |
validate-success: | |
needs: | |
["coverage-send"] | |
runs-on: ubuntu-latest | |
outputs: | |
success: ${{ steps.set-output.outputs.success }} | |
steps: | |
- id: set-output | |
run: echo "success=true" >> $GITHUB_OUTPUT | |
notify-success: | |
name: CI pipeline succeeded | |
needs: ["validate-success"] | |
if: always() # Always run, so we never skip this required check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Note Pipeline Passed | |
run: | | |
msgPrefix="Pipeline #${{ github.run_id }} finished" | |
passed="${{ needs.validate-success.outputs.success }}" | |
if [[ "$passed" == "true" ]]; then | |
echo "${msgPrefix}, PR passed all tests." | |
exit 0 | |
else | |
echo "${msgPrefix}, but with failures. Check left sidebar summary to see which jobs failed." | |
exit 1 | |
fi |