diff --git a/.github/workflows/ci-e2e.yml b/.github/workflows/ci-e2e.yml index c633b70075a66..a36a788b35ad8 100644 --- a/.github/workflows/ci-e2e.yml +++ b/.github/workflows/ci-e2e.yml @@ -191,7 +191,7 @@ jobs: OBJECT_STORAGE_SECRET_ACCESS_KEY=object_storage_root_password GITHUB_ACTION_RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" CELERY_METRICS_PORT=8999 - CLOUD_DEPLOYMENT=1 + CLOUD_DEPLOYMENT=E2E EOT - name: Start PostHog diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000000000..37c4e75ddb9bc --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,22 @@ +name: Go Test (for livestream service) + +on: + pull_request: + paths: + - 'livestream/**' + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.22 + + - name: Run tests + run: cd livestream && go test -v diff --git a/.github/workflows/replay-capture.yml b/.github/workflows/replay-capture.yml new file mode 100644 index 0000000000000..20f5df785763e --- /dev/null +++ b/.github/workflows/replay-capture.yml @@ -0,0 +1,35 @@ +name: Vector Replay Capture Tests + +on: + workflow_dispatch: + pull_request: + paths: + - vector/** + - .github/workflows/replay-capture.yml + + workflow_call: + +jobs: + vector-test: + name: Vector test + runs-on: ubuntu-20.04 + env: + QUOTA_LIMITED_TEAMS_PATH: vector/replay-capture/tests/quota_limited_teams.csv + OVERFLOW_SESSIONS_PATH: vector/replay-capture/tests/overflow_sessions.csv + KAFKA_BOOSTRAP_SERVERS: dummy:9092 + KAFKA_EVENTS_TOPIC: session_recording_snapshot_item_events + KAFKA_OVERFLOW_TOPIC: session_recording_snapshot_item_overflow + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Vector + run: | + wget https://github.com/vectordotdev/vector/releases/download/v0.40.0/vector-0.40.0-x86_64-unknown-linux-gnu.tar.gz + tar xzvf vector-0.40.0-x86_64-unknown-linux-gnu.tar.gz ./vector-x86_64-unknown-linux-gnu/bin/vector + sudo mv ./vector-x86_64-unknown-linux-gnu/bin/vector /usr/bin/vector + + - name: Run vector tests + run: | + yq -i e 'explode(.)' vector/replay-capture/vector.yaml + vector test vector/replay-capture/*.yaml diff --git a/.github/workflows/vector-docker-build-deploy.yml b/.github/workflows/vector-docker-build-deploy.yml new file mode 100644 index 0000000000000..44b86c24cd22a --- /dev/null +++ b/.github/workflows/vector-docker-build-deploy.yml @@ -0,0 +1,104 @@ +name: Build and deploy replay capture container images + +on: + workflow_dispatch: + push: + paths: + - 'vector/**' + - '.github/workflows/vector-docker-build-deploy.yml' + branches: + - 'master' + +jobs: + build: + name: Build and publish container image + runs-on: depot-ubuntu-22.04-4 + permissions: + id-token: write # allow issuing OIDC tokens for this workflow run + contents: read # allow reading the repo contents + packages: write # allow push to ghcr.io + + outputs: + digest: ${{ steps.docker_build.outputs.digest }} + + defaults: + run: + working-directory: vector/ + + steps: + - name: Check Out Repo + # Checkout project code + # Use sparse checkout to only select files in vector directory + # Turning off cone mode ensures that files in the project root are not included during checkout + uses: actions/checkout@v4 + with: + sparse-checkout: 'vector/' + sparse-checkout-cone-mode: false + + - name: Login to ghcr.io + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + logout: false + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/posthog/posthog/replay-capture + tags: | + type=ref,event=pr + type=ref,event=branch + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=sha + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + + - name: Build and push image + id: docker_build + uses: docker/build-push-action@v5 + with: + context: ./vector/replay-capture/ + file: ./vector/replay-capture/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + platforms: linux/arm64 + + deploy: + runs-on: ubuntu-latest + needs: build + steps: + - name: get deployer token + id: deployer + uses: getsentry/action-github-app-token@v3 + with: + app_id: ${{ secrets.DEPLOYER_APP_ID }} + private_key: ${{ secrets.DEPLOYER_APP_PRIVATE_KEY }} + + - name: Trigger livestream deployment + uses: peter-evans/repository-dispatch@v3 + with: + token: ${{ steps.deployer.outputs.token }} + repository: PostHog/charts + event-type: commit_state_update + client-payload: | + { + "values": { + "image": { + "sha": "${{ needs.build.outputs.digest }}" + } + }, + "release": "replay-capture-vector", + "commit": ${{ toJson(github.event.head_commit) }}, + "repository": ${{ toJson(github.repository) }}, + "labels": [] + } diff --git a/.run/Celery Threads.run.xml b/.run/Celery Threads.run.xml index b437920c4840b..f57ed16d523c7 100644 --- a/.run/Celery Threads.run.xml +++ b/.run/Celery Threads.run.xml @@ -21,7 +21,7 @@