Merge pull request #8004 from Ocelot-Social-Community/8003-fix-theme-… #1
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@163217dfcd28294438ea1c1c149cfaf66eec283e # v4.1.7 | |
- name: Check for frontend file changes | |
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | |
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@163217dfcd28294438ea1c1c149cfaf66eec283e # v4.1.7 | |
- 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@163217dfcd28294438ea1c1c149cfaf66eec283e # v4.1.7 | |
- 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@8469c94c6a180dfb41a1bd7e1b46ac557ea124f1 # v4.0.2 | |
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@163217dfcd28294438ea1c1c149cfaf66eec283e # v4.1.7 | |
- 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@163217dfcd28294438ea1c1c149cfaf66eec283e # v4.1.7 | |
- name: Restore webapp cache | |
uses: actions/cache@8469c94c6a180dfb41a1bd7e1b46ac557ea124f1 # v4.0.2 | |
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 frontend/.env.dist frontend/.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 | |