feat(dashboard): render dashboard page and repo cards (#796) #9753
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
# SPDX-License-Identifier: Apache-2.0 | |
# name of the action | |
name: ci | |
# trigger on pull_request or push events | |
on: | |
push: | |
pull_request: | |
env: | |
CI: 1 | |
# pipeline to execute | |
jobs: | |
# ┌─┐┬ ┌┬┐ ┌─┐┌─┐┬─┐┌┬┐┌─┐┌┬┐ | |
# ├┤ │ │││───├┤ │ │├┬┘│││├─┤ │ | |
# └─┘┴─┘┴ ┴ └ └─┘┴└─┴ ┴┴ ┴ ┴ | |
elm-format: | |
name: validate elm files | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-npm-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-npm-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-modules-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-modules-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.cache/Cypress | |
key: cypress-${{ runner.os }}-bin-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
cypress-${{ runner.os }}-bin-v2- | |
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
with: | |
node-version-file: '.nvmrc' | |
- name: install dependencies | |
run: npm ci --prefer-offline --no-audit | |
- name: install elm-format | |
run: npm i elm-format@0.8.5 | |
- name: run elm-format | |
run: npm run lint:elm | |
# ┌─┐┬ ┌┬┐ ┌┬┐┌─┐┌─┐┌┬┐ | |
# ├┤ │ │││───│ ├┤ └─┐ │ | |
# └─┘┴─┘┴ ┴ ┴ └─┘└─┘ ┴ | |
elm-test: | |
name: run elm tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.elm | |
key: ${{ runner.os }}-elm-v3-${{ hashFiles('**/elm.json') }} | |
restore-keys: | | |
${{ runner.os }}-elm-v3- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-npm-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-npm-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-modules-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-modules-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.cache/Cypress | |
key: cypress-${{ runner.os }}-bin-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
cypress-${{ runner.os }}-bin-v2- | |
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
with: | |
node-version-file: '.nvmrc' | |
- name: install dependencies | |
run: npm ci --prefer-offline --no-audit | |
- name: install elm-test | |
run: npm i elm-test@0.19.1-revision6 | |
- name: run elm-test | |
run: npm run test | |
# ┬ ┬┌┐┌┌┬┐ | |
# │ ││││ │ | |
# ┴─┘┴┘└┘ ┴ | |
lint: | |
name: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-npm-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-npm-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-modules-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-modules-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.cache/Cypress | |
key: cypress-${{ runner.os }}-bin-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
cypress-${{ runner.os }}-bin-v2- | |
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
with: | |
node-version-file: '.nvmrc' | |
- name: install dependencies | |
run: npm ci --prefer-offline --no-audit | |
- name: run linter | |
run: npm run lint | |
# ┌─┐┬ ┬┌─┐┬─┐┌─┐┌─┐┌─┐ | |
# │ └┬┘├─┘├┬┘├┤ └─┐└─┐ | |
# └─┘ ┴ ┴ ┴└─└─┘└─┘└─┘ | |
integration: | |
name: run cypress tests | |
runs-on: ubuntu-latest | |
env: | |
VELA_API: 'http://localhost:8080' | |
TERM: xterm | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.elm | |
key: ${{ runner.os }}-elm-v3-${{ hashFiles('**/elm.json') }} | |
restore-keys: | | |
${{ runner.os }}-elm-v3- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-npm-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-npm-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-modules-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-modules-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.cache/Cypress | |
key: cypress-${{ runner.os }}-bin-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
cypress-${{ runner.os }}-bin-v2- | |
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
with: | |
node-version-file: '.nvmrc' | |
- name: install dependencies | |
run: npm ci --prefer-offline --no-audit | |
- name: run cypress tests | |
run: npm run test:cy | |
# ┌─┐┬ ┬┌┐ ┬ ┬┌─┐┬ ┬ | |
# ├─┘│ │├┴┐│ │└─┐├─┤ | |
# ┴ └─┘└─┘┴─┘┴└─┘┴ ┴ | |
publish: | |
name: build and push to docker | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'go-vela/ui' | |
needs: [lint, elm-format, elm-test, integration] | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.elm | |
key: ${{ runner.os }}-elm-v3-${{ hashFiles('**/elm.json') }} | |
restore-keys: | | |
${{ runner.os }}-elm-v3- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-npm-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-npm-v2- | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-modules-v2-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-modules-v2- | |
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
with: | |
node-version-file: '.nvmrc' | |
# ┌┐ ┬ ┬┬┬ ┌┬┐ | |
# ├┴┐│ │││ ││ | |
# └─┘└─┘┴┴─┘─┴┘ | |
- name: install dependencies | |
run: npm ci --prefer-offline --no-audit | |
- name: run development build | |
run: npm run build | |
# ┌┬┐┌─┐┌─┐┬┌─┌─┐┬─┐ | |
# │││ ││ ├┴┐├┤ ├┬┘ | |
# ─┴┘└─┘└─┘┴ ┴└─┘┴└─ | |
- name: push to docker | |
uses: elgohr/Publish-Docker-Github-Action@eb53b3ec07136a6ebaed78d8135806da64f7c7e2 # v5 | |
with: | |
name: target/vela-ui | |
cache: true | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} |