diff --git a/.github/workflows/ci.yml b/.github/workflows/ci-backend.yml similarity index 52% rename from .github/workflows/ci.yml rename to .github/workflows/ci-backend.yml index 05544648e..7e3f72892 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci-backend.yml @@ -1,7 +1,18 @@ -name: Test suite +name: Backend Test & Lint on: push: + paths: + - 'backend/**' + - '.github/workflows/ci-backend.yml' + - 'docker-compose.yaml' + - '.env-github-actions' + pull_request: + paths: + - 'backend/**' + - '.github/workflows/ci-backend.yml' + - 'docker-compose.yaml' + - '.env-github-actions' jobs: @@ -56,54 +67,3 @@ jobs: - name: Lint Backend continue-on-error: false run: sudo docker-compose --env-file .env-github-actions run server bash -c "flake8" - - frontend-test: - name: Test Frontend - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Run Frontend Tests - run: sudo docker-compose --env-file .env-github-actions run client yarn test:ci - - frontend-coverage-badge: - name: Generate Frontend Coverage Badge - needs: frontend-test - runs-on: ubuntu-latest - if: github.ref == 'refs/heads/develop' - steps: - - uses: actions/checkout@v3 - - name: Generate Frontend Coverage Report (XML) and Badge - run: | - sudo docker-compose --env-file .env-github-actions run client yarn test:ci - sudo docker-compose --env-file .env-github-actions run client yarn coverage-badges -s public/coverage/coverage-summary.json -o public/coverage/coverage-frontend-badge-new.svg --label 'Frontend Code Coverage' - - name: Push Frontend Coverage Badge to separate branch - continue-on-error: true - run: | - if git ls-remote --heads origin code-coverage-badges; then - git fetch origin code-coverage-badges - git checkout code-coverage-badges - else - git checkout -b code-coverage-badges - git push origin code-coverage-badges - fi - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git config --global user.name "github-actions[bot]" - rm frontend/coverage-frontend-badge.svg -f - sudo mv frontend/public/coverage/coverage-frontend-badge-new.svg frontend/coverage-frontend-badge.svg - git add frontend/coverage-frontend-badge.svg - git commit -m "Add frontend coverage badge for commit $GITHUB_SHA" - git push origin code-coverage-badges - # Check if there are any changes - if git diff --staged --quiet; then - echo "No changes in coverage badge. Skipping commit and push." - else - git commit -m "Add frontend coverage badge for commit $GITHUB_SHA" - git push origin code-coverage-badges - fi - - frontend-lint: - name: Lint Frontend - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: sudo docker-compose --env-file .env-github-actions run client yarn lint diff --git a/.github/workflows/ci-frontend.yml b/.github/workflows/ci-frontend.yml new file mode 100644 index 000000000..6019cd9d8 --- /dev/null +++ b/.github/workflows/ci-frontend.yml @@ -0,0 +1,68 @@ +name: Frontend Test & Lint + +on: + push: + paths: + - 'frontend/**' + - '.yarn' + - '.github/workflows/ci-frontend.yml' + - 'docker-compose.yaml' + pull_request: + paths: + - 'frontend/**' + - '.yarn' + - '.github/workflows/ci-frontend.yml' + - 'docker-compose.yaml' + +jobs: + + frontend-test: + name: Test Frontend + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Run Frontend Tests + run: sudo docker-compose --env-file .env-github-actions run client yarn test:ci + + frontend-coverage-badge: + name: Generate Frontend Coverage Badge + needs: frontend-test + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/develop' + steps: + - uses: actions/checkout@v3 + - name: Generate Frontend Coverage Report (XML) and Badge + run: | + sudo docker-compose --env-file .env-github-actions run client yarn test:ci + sudo docker-compose --env-file .env-github-actions run client yarn coverage-badges -s public/coverage/coverage-summary.json -o public/coverage/coverage-frontend-badge-new.svg --label 'Frontend Code Coverage' + - name: Push Frontend Coverage Badge to separate branch + continue-on-error: true + run: | + if git ls-remote --heads origin code-coverage-badges; then + git fetch origin code-coverage-badges + git checkout code-coverage-badges + else + git checkout -b code-coverage-badges + git push origin code-coverage-badges + fi + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + rm frontend/coverage-frontend-badge.svg -f + sudo mv frontend/public/coverage/coverage-frontend-badge-new.svg frontend/coverage-frontend-badge.svg + git add frontend/coverage-frontend-badge.svg + git commit -m "Add frontend coverage badge for commit $GITHUB_SHA" + git push origin code-coverage-badges + # Check if there are any changes + if git diff --staged --quiet; then + echo "No changes in coverage badge. Skipping commit and push." + else + git commit -m "Add frontend coverage badge for commit $GITHUB_SHA" + git push origin code-coverage-badges + fi + + frontend-lint: + name: Lint Frontend + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - run: sudo docker-compose --env-file .env-github-actions run client yarn lint diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml index 5aa502e97..1a5a42935 100644 --- a/.github/workflows/storybook.yml +++ b/.github/workflows/storybook.yml @@ -5,7 +5,17 @@ on: branches: - main - develop + paths: + - 'frontend/**' + - '.github/workflows/storybook.yml' + - '.yarn/**' + - '.storybook/**' pull_request: + paths: + - 'frontend/**' + - '.github/workflows/storybook.yml' + - '.yarn/**' + - '.storybook/**' permissions: contents: read