From 159743baeebc5433c2d385c55aceada18ce9b771 Mon Sep 17 00:00:00 2001 From: Jean Fernandez <55406257+jean-the-coder@users.noreply.github.com> Date: Sun, 3 Mar 2024 22:17:54 -0500 Subject: [PATCH] Split tests into separate workflow Split tests into separate development workflow that can be included within ci file. Restrict ci to only run on pushes to main/beta branches. run dev workflow on pull requests --- .github/workflows/ci.yaml | 57 +++---------------------- .github/workflows/development.yaml | 68 ++++++++++++++++++++++++++++++ Makefile | 4 +- 3 files changed, 76 insertions(+), 53 deletions(-) create mode 100644 .github/workflows/development.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 09d391e9..1266efa2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,66 +1,22 @@ name: CI -# This workflow is triggered on pushes & pull requests +# This workflow is triggered on pushes on: - pull_request: - branches: - - main - - sandbox - - beta push: branches: [ main, beta ] # Publish semver tags as releases. release: types: [published] jobs: - test-frontend: - name: Test Frontend - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: test - uses: actions/setup-node@v1 - with: - node-version: 20.x - - name: Test Frontend - run: | - make test-frontend-coverage - - name: Upload coverage - uses: actions/upload-artifact@v3 - with: - name: coverage - path: ${{ github.workspace }}/frontend/coverage/fastenhealth/lcov.info - retention-days: 1 - test-backend: - name: Test Backend - runs-on: ubuntu-latest - container: ghcr.io/packagrio/packagr:latest-golang - env: - STATIC: true - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Test Backend - run: | - go install github.com/golang/mock/mockgen@v1.6.0 - go generate ./... - make test-backend-coverage - CGO_ENABLED=0 go build -buildvcs=false ./backend/cmd/fasten/ - - name: Upload coverage - uses: actions/upload-artifact@v3 - with: - name: coverage - path: ${{ github.workspace }}/backend-coverage.txt - retention-days: 1 + test: + uses: ./.github/workflows/development.yaml test-coverage: name: Test Coverage Upload needs: - - test-backend - - test-frontend + - test runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Download coverage reports uses: actions/download-artifact@v3 with: @@ -72,12 +28,11 @@ jobs: flags: unittests fail_ci_if_error: true verbose: true - storybook: name: Storybook Upload runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - run: cd frontend && yarn install diff --git a/.github/workflows/development.yaml b/.github/workflows/development.yaml new file mode 100644 index 00000000..16dd46ff --- /dev/null +++ b/.github/workflows/development.yaml @@ -0,0 +1,68 @@ +name: Development + +on: + pull_request: + types: + - opened + - edited + - synchronize + - reopened + workflow_call: + +jobs: + test-frontend: + name: Test Frontend + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20.x + - name: Test Frontend + run: | + make test-frontend-coverage + - name: Upload coverage + uses: actions/upload-artifact@v3 + with: + name: coverage + path: ${{ github.workspace }}/frontend/coverage/fastenhealth/lcov.info + retention-days: 1 + test-backend: + name: Test Backend + runs-on: ubuntu-latest + container: ghcr.io/packagrio/packagr:latest-golang + env: + STATIC: true + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup + run: | + go install github.com/golang/mock/mockgen@v1.6.0 + go generate ./... + - name: Test Backend + run: | + make test-backend-coverage + CGO_ENABLED=0 go build -buildvcs=false ./backend/cmd/fasten/ + - name: Upload coverage + uses: actions/upload-artifact@v3 + with: + name: coverage + path: ${{ github.workspace }}/backend-coverage.txt + retention-days: 1 + compile-storybook: + name: Compile Storybook + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup + uses: actions/setup-node@v4 + with: + node-version: 20.x + - run: | + make build-storybook + + diff --git a/Makefile b/Makefile index 631c2bce..e08143bf 100644 --- a/Makefile +++ b/Makefile @@ -9,11 +9,11 @@ test: test-backend test-frontend .PHONY: build-storybook build-storybook: dep-frontend - cd frontend && ng run fastenhealth:build-storybook + cd frontend && npx ng run fastenhealth:build-storybook .PHONY: serve-storybook serve-storybook: dep-frontend - cd frontend && ng run fastenhealth:storybook + cd frontend && npx ng run fastenhealth:storybook .PHONY: serve-frontend serve-frontend: dep-frontend