Skip to content
Closed

test #68

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion contrib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ SUBDIRS = \
tsm_system_rows \
tsm_system_time \
unaccent \
vacuumlo
vacuumlo \
orioledb

ifeq ($(with_ssl),openssl)
SUBDIRS += pgcrypto sslinfo
Expand Down
100 changes: 100 additions & 0 deletions contrib/orioledb/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Exclude files and directories to minimize
# the Docker build context size.
# This practice limits the scope of COPY commands in the Dockerfile.
# When not using multi-layer builds, it can effectively reduce the final image size.

# The first part of this file is should be the same as the .gitignore file
# The second part is the extra not needed content for .dockerignore

########################################################
# first part: .gitignore contents
########################################################

# Global excludes across all subdirectories
**/*.o
**/*.obj
**/*.bc
**/*.so
**/*.so.[0-9]
**/*.so.[0-9].[0-9]
**/*.so.[0-9].[0-9][0-9]
**/*.sl
**/*.sl.[0-9]
**/*.sl.[0-9].[0-9]
**/*.sl.[0-9].[0-9][0-9]
**/*.dylib
**/*.dll
**/*.exp
**/*.a
**/*.mo
**/*.pot
**/objfiles.txt
**/.deps/
**/*.gcno
**/*.gcda
**/*.gcov
**/*.gcov.out
**/lcov*.info
**/coverage/
**/coverage-html-stamp
**/*.vcproj
**/*.vcxproj
**/win32ver.rc
**/*.exe
**/lib*dll.def
**/lib*.pc

# Local excludes in root directory
test/t/__pycache__/
test/__pycache__/
test/log/
log_docker_build/
test/results/
test/tmp_check/
test/tmp_check_iso/
test/output_iso/
include/utils/stopevents_defs.h
include/utils/stopevents_data.h
orioledb.typedefs
ci/antithesis

# Ignore generated scripts
sql/orioledb--1.0.sql
sql/orioledb--1.4--1.5.sql
sql/orioledb--1.5--1.6.sql
sql/orioledb--1.6--1.7.sql

#######################################################
# second part: extra .dockerignore contents
#######################################################

# Exclude version control and continuous integration (CI) directories
.git
.github
.gitattributes
.gitignore
.style.yapf

# Exclude Dockerfiles
docker/Dockerfile
docker/Dockerfile.ubuntu

# Exclude OrioleDB Docker test definitions and code
# as they are not needed inside the Docker image.
test/
ci/local_docker_matrix.sh
ci/docker_matrix.sh

# Documentation files, which are not needed inside the Docker image.
doc/
**/*.md

# Exclude some files that are not needed inside the Docker image.
# but sometimes left in the directory
docker-postgis
wal2json*
**/*.log
**/_*.*

# Misc
make.flags
1 change: 1 addition & 0 deletions contrib/orioledb/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.svg -diff
3 changes: 3 additions & 0 deletions contrib/orioledb/.github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: [orioledb]
170 changes: 170 additions & 0 deletions contrib/orioledb/.github/workflows/antithesis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
name: antithesis

on:
workflow_dispatch:
inputs:
long:
description: "3 hours"
required: true
type: boolean
default: true

env:
ANTITHESIS_REPOSITORY: https://us-central1-docker.pkg.dev
ORIOLEDB_REPOSITORY: us-central1-docker.pkg.dev/molten-verve-216720/orioledb-repository

jobs:
config_build_push:
name: Build config docker images and push to Antithesis repository
runs-on: ubuntu-24.04
steps:
- name: Checkout extension code into workspace directory
uses: actions/checkout@v6

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to Antithesis Registry
uses: docker/login-action@v2
with:
registry: ${{ env.ANTITHESIS_REPOSITORY }}
username: _json_key
password: ${{ secrets.ANTITHESIS_JSON_KEY }}

- name: Build regression/isolation config docker image and push to Antithesis repository
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
file: ci/antithesis/Dockerfile.regress_config
tags: |
${{ env.ORIOLEDB_REPOSITORY }}/orioledb-config:antithesis-latest
build-args: |
PGTAG=${{ env.PGTAG }}

- name: Build testgres config docker image and push to Antithesis repository
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
file: ci/antithesis/Dockerfile.testgres_config
tags: |
${{ env.ORIOLEDB_REPOSITORY }}/orioledb-config:antithesis-testgres-latest
build-args: |
PGTAG=${{ env.PGTAG }}
app_build_push:
name: Build app/workload docker images and push to Antithesis repository
runs-on: ubuntu-24.04
strategy:
fail-fast: true
matrix:
pg_version: [17]
steps:
- name: Checkout extension code into workspace directory
uses: actions/checkout@v6

- name: Get the required tag name
shell: bash
run: |
echo "PGTAG=$(grep '^${{ matrix.pg_version }}: ' .pgtags | cut -d' ' -f2-)" >> $GITHUB_ENV

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Login to Antithesis Registry
uses: docker/login-action@v2
with:
registry: ${{ env.ANTITHESIS_REPOSITORY }}
username: _json_key
password: ${{ secrets.ANTITHESIS_JSON_KEY }}

- name: Build regression/isolation app docker image and push to Antithesis repository
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
file: ci/antithesis/Dockerfile.regress_app
tags: |
${{ env.ORIOLEDB_REPOSITORY }}/orioledb:antithesis-pg${{ matrix.pg_version }}-latest
build-args: |
PGTAG=${{ env.PGTAG }}

- name: Build regression/isolation workload docker image and push to Antithesis repository
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
file: ci/antithesis/Dockerfile.regress_workload
tags: |
${{ env.ORIOLEDB_REPOSITORY }}/orioledb-workload:antithesis-pg${{ matrix.pg_version }}-latest
build-args: |
PGTAG=${{ env.PGTAG }}

- name: Build testgres app/workload docker image and push to Antithesis repository
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
file: ci/antithesis/Dockerfile.testgres_app_workload
tags: |
${{ env.ORIOLEDB_REPOSITORY }}/orioledb:antithesis-testgres-pg${{ matrix.pg_version }}-latest
build-args: |
PGTAG=${{ env.PGTAG }}

regress_webhook:
name: Run regression/isolation tests with fault injection to test system resiliency
runs-on: ubuntu-24.04
needs:
- config_build_push
- app_build_push
strategy:
fail-fast: true
matrix:
pg_version: [13, 14, 15]
steps:
- name: determine endpoint
run: |
if [ '${{ inputs.long == true }}' = 'true' ]; then
echo "ENDPOINT='fault-tolerance-test__orioledb__network-faults__antithesis-pg'" >> $GITHUB_ENV
else
echo "ENDPOINT='fault-tolerance-test__orioledb-short__no-faults__antithesis-pg'" >> $GITHUB_ENV
fi
- name: fault-tolerance-test regress
run: |
curl -X POST https://orioledb.antithesis.com/api/v1/launch_experiment/${{ env.ENDPOINT }}${{ matrix.pg_version }}-latest -u '${{ secrets.ANTITHESIS_API_USER }}'
testgres_webhook:
name: Run randomized testgres tests without any test harness
runs-on: ubuntu-24.04
needs:
- config_build_push
- app_build_push
strategy:
fail-fast: true
matrix:
pg_version: [13, 14, 15]
steps:
- name: determine endpoint
run: |
if [ '${{ inputs.long == true }}' = 'true' ]; then
echo "ENDPOINT='fault-tolerance-test__orioledb__thread-pause__antithesis-testgres-pg'" >> $GITHUB_ENV
else
echo "ENDPOINT='fault-tolerance-test__orioledb-short__no-faults__antithesis-testgres-pg'" >> $GITHUB_ENV
fi
- name: fault-tolerance-test testgres
run: |
curl -X POST https://orioledb.antithesis.com/api/v1/launch_experiment/${{ env.ENDPOINT }}${{ matrix.pg_version }}-latest -u '${{ secrets.ANTITHESIS_API_USER }}'
Loading
Loading