Skip to content

Commit

Permalink
Merge pull request #226 from hasadna/ci/combine-things-to-one-workflow
Browse files Browse the repository at this point in the history
ci: combine things to one workflow
  • Loading branch information
xoRmalka authored Nov 18, 2023
2 parents 6e29b9d + e3b8ea2 commit c8321a2
Show file tree
Hide file tree
Showing 10 changed files with 266 additions and 178 deletions.
38 changes: 0 additions & 38 deletions .github/workflows/clean_tree.yaml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/workflows/lint.yml

This file was deleted.

52 changes: 0 additions & 52 deletions .github/workflows/playwright.yml

This file was deleted.

18 changes: 0 additions & 18 deletions .github/workflows/unittest.yml

This file was deleted.

133 changes: 133 additions & 0 deletions .github/workflows/validate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
name: Validate
on:
pull_request:

env:
DOCKER_APP_IMAGE_NAME: 'ghcr.io/hasadna/open-bus-map-search/open-bus-map-search'
DOCKER_APP_IMAGE_TAG: 'latest'

jobs:
verify-clean-tree:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Run install
uses: borales/actions-yarn@v4
with:
cmd: install
- name: make sure package.lock does not exist
run: rm -f package-lock.json
- name: Git Check Clean Tree
uses: ArkadiK94/[email protected]
with:
error-reason: 'removing package-lock.json file'
- name: Install dependencies
run: yarn
- name: Git Check Clean Tree
uses: ArkadiK94/[email protected]
with:
error-reason: 'yarn'
- name: Build
run: yarn build
- name: Build Storybook
run: yarn build-storybook -o dist/storybook
- name: Git Check Clean Tree
uses: ArkadiK94/[email protected]
with:
error-reason: 'yarn build and yarn build-storybook'
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Run install
uses: borales/actions-yarn@v4
with:
cmd: install
- name: Run lint
run: yarn lint
circular:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Run install
uses: borales/actions-yarn@v4
with:
cmd: install
- name: find circular dependencies
run: yarn madge --extensions js,ts --circular .
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and Export Docker image
uses: docker/build-push-action@v2
with:
context: .
tags: ${{ env.DOCKER_APP_IMAGE_NAME }}:${{ env.DOCKER_APP_IMAGE_TAG }}
outputs: type=docker, dest=/tmp/docker-image.tar
- name: Save Docker image
uses: actions/upload-artifact@v2
with:
name: docker-image
path: /tmp/docker-image.tar
test:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: docker-image
path: /tmp
- name: Load image
run: docker load -i /tmp/docker-image.tar
- name: Run application
run: docker run -d -p 3000:80 ${{ env.DOCKER_APP_IMAGE_NAME }}:${{ env.DOCKER_APP_IMAGE_TAG }}
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Run install
uses: borales/actions-yarn@v4
with:
cmd: install
- run: yarn playwright install
- name: Run test
run: yarn test
- name: upload playwright artifacts
if: always()
uses: actions/upload-artifact@v2
with:
name: playwright
path: test-results
test-unit:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 20
- name: Run install
uses: borales/actions-yarn@v4
with:
cmd: install
- name: run the tests
run: yarn test:unit
all-passed:
runs-on: ubuntu-latest
needs: [verify-clean-tree, lint, circular, test, test-unit]
steps:
- name: All passed
run: echo "All passed"
2 changes: 1 addition & 1 deletion playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ export default defineConfig({
/* Run your local dev server before starting the tests */
webServer: {
command: 'yarn start',
reuseExistingServer: !process.env.CI,
reuseExistingServer: true,
timeout: 120 * 1000,
port: 3000,
},
Expand Down
30 changes: 30 additions & 0 deletions tests/SelectorsModel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Page, Locator } from '@playwright/test'

export default class Selectors {
_operatorSelector: Locator
_routeSelector: Locator
_stopSelector: Locator
_lineNumberSelector: Locator

constructor(page: Page) {
this._operatorSelector = page.locator('#operator-select')
this._lineNumberSelector = page.getByPlaceholder('לדוגמא: 17א')
this._routeSelector = page
.locator('div')
.filter({ hasText: /^בחירת מסלול נסיעה/ })
.locator('#route-select')
this._stopSelector = page.locator('#stop-select')
}
get operator() {
return this._operatorSelector
}
get lineNumber() {
return this._lineNumberSelector
}
get route() {
return this._routeSelector
}
get stop() {
return this._stopSelector
}
}
4 changes: 2 additions & 2 deletions tests/about.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ test.describe('About Page Tests', () => {
test('can access about page by clicking `about` menu', async ({ page }) => {
await page.goto('/')
await page.getByText('אודות').click()
await expect(page).toHaveURL('http://localhost:3000/about')
const locator = await page.locator('li:has-text("אודות")')
await expect(page).toHaveURL(/about/)
const locator = await page.locator('li').filter({ hasText: 'אודות' })
await expect(locator).toHaveClass(/menu-item-selected/)
})
test('page display title `מהו אתר “דאטאבוס”?`', async ({ page }) => {
Expand Down
Loading

0 comments on commit c8321a2

Please sign in to comment.