Skip to content

Setup AppMap Analysis #34

Setup AppMap Analysis

Setup AppMap Analysis #34

name: appmap-analysis
on:
pull_request:
push:
branches:
- master
schedule:
- cron: '0 0 * * 0'
jobs:
record-appmaps:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
group: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: misago
POSTGRES_PASSWORD: misago
POSTGRES_DB: misago
ports:
- 5432:5432
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install AppMap tools
id: install-appmap
uses: getappmap/install-action@v1
with:
project-type: pip
build-file: "requirements.txt"
- name: Pytest
env:
DJANGO_SETTINGS_MODULE: devproject.test_settings
POSTGRES_DB: misago
POSTGRES_USER: misago
POSTGRES_PASSWORD: misago
POSTGRES_HOST: localhost
run: |
pytest --no-cov --splits 18 --group ${{ matrix.group }}
- name: Set matrix group env var with zero-based numbering
if: always()
id: set-matrix-group-var
env:
NUM: ${{ matrix.group }}
run: |
echo "ARCHIVE_ID=$(($NUM - 1))" >> $GITHUB_OUTPUT
- name: Delete Request AppMaps
if: always()
run: |
rm -rfv tmp/appmap/requests
- name: Save AppMap archive
if: always()
uses: getappmap/archive-action@v1
with:
archive-id: ${{ steps.set-matrix-group-var.outputs.ARCHIVE_ID }}
appmap-analysis:
if: always()
needs: [record-appmaps]
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
checks: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install AppMap tools
uses: getappmap/install-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
install-appmap-library: false
- name: Merge AppMaps
uses: getappmap/archive-action/merge@v1
with:
revision: ${{ github.event.pull_request.head.sha }}
archive-count: 17
- name: Analyze AppMaps
uses: getappmap/analyze-action@v1
if: (success() || failure()) && github.event_name == 'pull_request'
with:
base-revision: ${{ github.event.pull_request.base.sha }}
head-revision: ${{ github.event.pull_request.head.sha }}
github-token: ${{ secrets.GITHUB_TOKEN }}