Merge branch 'master' into 6678-add-chat-item-to-avatar-navigation-menu #1938
Workflow file for this run
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: ocelot.social webapp test CI | |
on: push | |
jobs: | |
files-changed: | |
name: Detect File Changes - Webapp | |
runs-on: ubuntu-latest | |
outputs: | |
docker: ${{ steps.changes.outputs.docker }} | |
webapp: ${{ steps.changes.outputs.webapp }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check for frontend file changes | |
uses: dorny/paths-filter@v2.11.1 | |
id: changes | |
with: | |
token: ${{ github.token }} | |
filters: .github/file-filters.yml | |
list-files: shell | |
prepare: | |
name: Prepare | |
if: needs.files-changed.outputs.webapp == 'true' | |
needs: files-changed | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Check translation files | |
run: | | |
scripts/translations/sort.sh | |
scripts/translations/missing-keys.sh | |
build_test_webapp: | |
name: Docker Build Test - Webapp | |
if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' | |
needs: [files-changed, prepare] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Webapp | Build 'test' image | |
run: | | |
docker build --target test -t "ocelotsocialnetwork/webapp:test" webapp/ | |
docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar | |
- name: Cache docker image | |
uses: actions/cache/save@v4.0.0 | |
with: | |
path: /tmp/webapp.tar | |
key: ${{ github.run_id }}-webapp-cache | |
lint_webapp: | |
name: Lint Webapp | |
if: needs.files-changed.outputs.webapp == 'true' | |
needs: files-changed | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: webapp | Lint | |
run: cd webapp && yarn && yarn run lint | |
unit_test_webapp: | |
name: Unit Tests - Webapp | |
if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' | |
needs: [files-changed, build_test_webapp] | |
runs-on: ubuntu-latest | |
permissions: | |
checks: write | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Restore webapp cache | |
uses: actions/cache/restore@v4.0.0 | |
with: | |
path: /tmp/webapp.tar | |
key: ${{ github.run_id }}-webapp-cache | |
- name: Load Docker Image | |
run: docker load < /tmp/webapp.tar | |
- name: Copy env files | |
run: | | |
cp webapp/.env.template webapp/.env | |
cp backend/.env.template backend/.env | |
- name: backend | docker-compose | |
run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp | |
- name: webapp | Unit tests incl. coverage check | |
run: docker-compose exec -T webapp yarn test | |
cleanup: | |
name: Cleanup | |
if: ${{ needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' }} | |
needs: [files-changed, unit_test_webapp] | |
runs-on: ubuntu-latest | |
permissions: write-all | |
continue-on-error: true | |
steps: | |
- name: Delete cache | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh extension install actions/gh-actions-cache | |
KEY="${{ github.run_id }}-webapp-cache" | |
gh actions-cache delete $KEY -R Ocelot-Social-Community/Ocelot-Social --confirm | |