Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOP-13487] Implement HDFS tests in github #7

Merged
merged 4 commits into from
Mar 5, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .github/workflows/hdfs-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: HDFS Tests
on:
push:
branches:
- develop
pull_request:
branches-ignore:
- master
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

env:
DEFAULT_PYTHON: '3.11'

jobs:
tests:
name: Run HDFS tests
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

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

- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
large-packages: true
docker-images: true
swap-storage: true

- name: Cache jars
uses: actions/cache@v4
with:
path: ./cached_jars
key: ${{ runner.os }}-python-${{ env.DEFAULT_PYTHON }}-test-hdfs-jars
restore-keys: |
${{ runner.os }}-python-${{ env.DEFAULT_PYTHON }}-test-hdfs-jars
${{ runner.os }}-python
${{ runner.os }}

- name: Build Worker Image
uses: docker/build-push-action@v5
with:
context: .
tags: syncmaster_worker:${{ github.sha }}
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
file: docker/worker.dockerfile
load: true
cache-to: type=gha,mode=max
cache-from: type=gha

- name: Docker compose up
run: |
docker compose -f docker-compose.test.yml down -v --remove-orphans
docker compose -f docker-compose.test.yml up -d db worker rabbitmq test-hive test-postgres --wait --wait-timeout 200
env:
WORKER_IMAGE_TAG: ${{ github.sha }}
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Run HDFS Tests.
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m hdfs
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Shutdown
if: always()
run: |
docker compose -f docker-compose.test.yml down -v --remove-orphans
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster
Loading