Syncing latest changes from upstream main for ramen #210
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
# SPDX-FileCopyrightText: The RamenDR authors | |
# SPDX-License-Identifier: Apache-2.0 | |
--- | |
# yamllint disable rule:line-length | |
name: E2E | |
on: # yamllint disable-line rule:truthy | |
pull_request: | |
types: [opened, synchronize, reopened] | |
env: | |
NAME_PREFIX: "rdr-" | |
# Limit number of drenv workers. | |
MAX_WORKERS: 4 | |
GATHER_DIR: gather.${{ github.run_id }}-${{ github.run_attempt }} | |
jobs: | |
e2e-rdr: | |
runs-on: [self-hosted, e2e-rdr] | |
if: github.repository == 'RamenDR/ramen' && github.event.pull_request.author_association == 'MEMBER' | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: Install drenv | |
run: pip install -e test | |
- name: Setup drenv | |
working-directory: test | |
run: drenv setup -v envs/regional-dr.yaml | |
- name: Install ramenctl | |
run: pip install -e ramenctl | |
- name: Delete clusters | |
if: always() | |
working-directory: test | |
run: drenv delete --name-prefix ${{ env.NAME_PREFIX }} envs/regional-dr.yaml | |
- name: Setup libvirt | |
run: test/scripts/setup-libvirt | |
- name: Start clusters | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 20 | |
max_attempts: 3 | |
command: | | |
cd test | |
drenv start --max-workers ${{ env.MAX_WORKERS }} --name-prefix ${{ env.NAME_PREFIX }} envs/regional-dr.yaml | |
- name: Build ramen-operator container | |
run: make docker-build | |
- name: Deploy ramen | |
run: ramenctl deploy --name-prefix ${{ env.NAME_PREFIX }} test/envs/regional-dr.yaml | |
- name: Configure ramen | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_seconds: 120 | |
max_attempts: 3 | |
command: ramenctl config --name-prefix ${{ env.NAME_PREFIX }} test/envs/regional-dr.yaml | |
- name: Run e2e tests | |
run: | | |
cat ~/.config/drenv/${{ env.NAME_PREFIX }}rdr/config.yaml >> e2e/config.yaml | |
make e2e-rdr | |
- name: Gather environment data | |
if: failure() | |
working-directory: test | |
run: drenv gather --directory ${{ env.GATHER_DIR }} --name-prefix ${{ env.NAME_PREFIX }} envs/regional-dr.yaml | |
# Tar manually to work around github limitations with special chracters (:) | |
# in file names, and getting much smaller archives comapred with zip (6m vs | |
# 12m). | |
# https://github.com/actions/upload-artifact/issues/546 | |
- name: Archive gathered data | |
if: failure() | |
working-directory: test | |
run: tar czf ${{ env.GATHER_DIR }}.tar.gz ${{ env.GATHER_DIR }} | |
- name: Upload artifacts | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.GATHER_DIR }} | |
path: test/${{ env.GATHER_DIR }}.tar.gz | |
compression-level: 0 | |
retention-days: 15 | |
- name: Delete clusters | |
if: always() | |
working-directory: test | |
run: drenv delete --name-prefix ${{ env.NAME_PREFIX }} envs/regional-dr.yaml | |
- name: Cleanup drenv | |
if: always() | |
working-directory: test | |
run: drenv cleanup -v envs/regional-dr.yaml |