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: 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 |