Skip to content

Reformatting effort and test organization #171

Reformatting effort and test organization

Reformatting effort and test organization #171

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- main
pull_request:
branches: [main]
paths:
- "**"
- "!/*.md"
- "!/**.md"
concurrency:
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true
jobs:
ci:
name: CI
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust Toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- name: Setup Rust Cache
uses: Swatinem/rust-cache@v2
- name: Check formatting
run: cargo fmt --check
- name: Check clippy
run: cargo clippy --workspace -- -D warnings
- name: Unit Tests
run: cargo test -p matrix
- name: Install Just
uses: extractions/setup-just@v1
with:
just-version: '1.13.0'
- name: Create a copy of `.env.example`
run: just dotenv
- name: Set environment variable
run: echo "DOCKER_USER='$(id -u):$(id -g)'" >> .env
- name: Use Test Homeserver
run: |
mkdir -p ./docker/synapse
cp ./crates/test/fixtures/synapse/* ./docker/synapse
- name: Run Docker Containers
run: |
docker compose up -d --build
sleep 20
- name: Create Admin User
run: just gen_synapse_admin
- name: Check Synapse is Running
run: curl -sSf http://localhost:8008 > /dev/null
- name: Provide Database Backup & Test it
run: |
just backup_db
just nuke_db
just restore_db
- name: Retrieve Admin Access Token
run: |
just get_access_token
grep 'COMMUNE_SYNAPSE_ADMIN_TOKEN' .env | sed "s/'//g" >> $GITHUB_ENV
- name: E2E Tests
env:
COMMUNE_SYNAPSE_ADMIN_TOKEN: ${{ env.COMMUNE_SYNAPSE_ADMIN_TOKEN }}
run: |
just e2e -- --show-output
- name: Print Logs
if: always()
run: |
docker-compose logs --no-color --tail=1000 synapse > synapse.log
cat ./synapse.log
docker compose down
docker ps