2023-03-01 17:46:40 +01:00
|
|
|
name: Perform staging tests (REUSABLE)
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_call:
|
|
|
|
inputs:
|
|
|
|
TYPE:
|
|
|
|
required: true
|
|
|
|
type: string
|
2023-03-03 11:22:16 +01:00
|
|
|
RUNS_ON:
|
|
|
|
required: true
|
|
|
|
type: string
|
2023-03-03 16:08:56 +01:00
|
|
|
# secrets:
|
|
|
|
# PRIVATE_REGISTRY:
|
|
|
|
# required: true
|
|
|
|
# PRIVATE_REGISTRY_TOKEN:
|
|
|
|
# required: true
|
|
|
|
# TEST_DOMAINS:
|
|
|
|
# required: true
|
|
|
|
# ROOT_DOMAIN:
|
|
|
|
# required: true
|
2023-03-01 17:46:40 +01:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
tests:
|
2023-03-05 21:51:04 +01:00
|
|
|
runs-on: ${{ fromJSON(inputs.RUNS_ON) }}
|
2023-03-01 17:46:40 +01:00
|
|
|
steps:
|
|
|
|
# Prepare
|
|
|
|
- name: Checkout source code
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Login to private repository
|
|
|
|
uses: docker/login-action@v2
|
|
|
|
with:
|
|
|
|
registry: ${{ secrets.PRIVATE_REGISTRY }}
|
|
|
|
username: registry
|
|
|
|
password: ${{ secrets.PRIVATE_REGISTRY_TOKEN }}
|
|
|
|
- name: Pull BW image
|
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/bunkerweb-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/bunkerweb-tests:staging local/bunkerweb-tests:latest
|
2023-03-07 11:42:36 +01:00
|
|
|
if: contains(fromJSON('["linux", "k8s"]'), inputs.TYPE) != true
|
2023-03-01 17:46:40 +01:00
|
|
|
- name: Pull Scheduler image
|
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/scheduler-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/scheduler-tests:staging local/scheduler-tests:latest
|
2023-03-07 11:42:36 +01:00
|
|
|
if: contains(fromJSON('["linux", "k8s"]'), inputs.TYPE) != true
|
2023-03-01 17:46:40 +01:00
|
|
|
- name: Pull Autoconf image
|
2023-03-07 11:40:39 +01:00
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/autoconf-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/autoconf-tests:staging local/autoconf-tests:latest
|
2023-03-01 17:46:40 +01:00
|
|
|
if: contains(fromJSON('["autoconf", "swarm"]'), inputs.TYPE)
|
|
|
|
- name: Push images to local repo
|
|
|
|
run: docker tag local/bunkerweb-tests:latest 192.168.42.100:5000/bunkerweb-tests:latest && docker push 192.168.42.100:5000/bunkerweb-tests:latest && docker tag local/scheduler-tests:latest 192.168.42.100:5000/scheduler-tests:latest && docker push 192.168.42.100:5000/scheduler-tests:latest && docker tag local/autoconf-tests:latest 192.168.42.100:5000/autoconf-tests:latest && docker push 192.168.42.100:5000/autoconf-tests:latest
|
|
|
|
if: inputs.TYPE == 'swarm'
|
|
|
|
- name: Install test dependencies
|
|
|
|
run: pip3 install -r tests/requirements.txt
|
|
|
|
- uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: tf-k8s
|
|
|
|
path: /tmp
|
|
|
|
if: inputs.TYPE == 'k8s'
|
|
|
|
- run: tar xvf /tmp/terraform.tar -C /
|
|
|
|
if: inputs.TYPE == 'k8s'
|
|
|
|
- uses: azure/setup-kubectl@v3
|
|
|
|
if: inputs.TYPE == 'k8s'
|
|
|
|
- uses: azure/setup-helm@v3
|
|
|
|
if: inputs.TYPE == 'k8s'
|
|
|
|
- name: Pull BW linux ubuntu test image
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/ubuntu-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/ubuntu-tests:staging local/ubuntu:latest
|
|
|
|
- name: Pull BW linux debian test image
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/debian-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/debian-tests:staging local/debian:latest
|
|
|
|
- name: Pull BW linux centos test image
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/centos-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/centos-tests:staging local/centos:latest
|
|
|
|
- name: Pull BW linux fedora test image
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/fedora-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/fedora-tests:staging local/fedora:latest
|
2023-03-03 11:44:05 +01:00
|
|
|
- name: Pull BW linux rhel test image
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-03 11:44:05 +01:00
|
|
|
run: docker pull ${{ secrets.PRIVATE_REGISTRY }}/infra/rhel-tests:staging && docker tag ${{ secrets.PRIVATE_REGISTRY }}/infra/rhel-tests:staging local/rhel:latest
|
2023-03-06 16:20:35 +01:00
|
|
|
# Do tests
|
|
|
|
- name: Run tests
|
2023-03-03 16:08:56 +01:00
|
|
|
if: inputs.TYPE == 'docker'
|
2023-03-06 16:20:35 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "${{ inputs.TYPE }}"
|
|
|
|
env:
|
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_DOCKER }}
|
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|
|
|
|
- name: Run tests
|
2023-03-03 16:08:56 +01:00
|
|
|
if: inputs.TYPE == 'autoconf'
|
2023-03-06 16:20:35 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "${{ inputs.TYPE }}"
|
|
|
|
env:
|
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_AUTOCONF }}
|
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|
2023-03-01 17:46:40 +01:00
|
|
|
- name: Run tests
|
2023-03-06 16:20:35 +01:00
|
|
|
if: inputs.TYPE == 'swarm'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "${{ inputs.TYPE }}"
|
|
|
|
env:
|
2023-03-06 16:20:35 +01:00
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_SWARM }}
|
2023-03-01 17:46:40 +01:00
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|
|
|
|
- name: Run tests
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'k8s'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "kubernetes"
|
|
|
|
env:
|
2023-03-06 16:20:35 +01:00
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_KUBERNETES }}
|
2023-03-01 17:46:40 +01:00
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|
|
|
|
KUBECONFIG: "/tmp/k8s/kubeconfig"
|
|
|
|
PRIVATE_REGISTRY: ${{ secrets.PRIVATE_REGISTRY }}
|
2023-03-07 11:40:39 +01:00
|
|
|
IMAGE_TAG: "staging"
|
2023-03-01 17:46:40 +01:00
|
|
|
- name: Run Linux ubuntu tests
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "linux" "ubuntu"
|
|
|
|
env:
|
2023-03-06 16:20:35 +01:00
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_LINUX }}
|
2023-03-01 17:46:40 +01:00
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|
|
|
|
- name: Run Linux debian tests
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "linux" "debian"
|
|
|
|
env:
|
2023-03-06 16:20:35 +01:00
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_LINUX }}
|
2023-03-01 17:46:40 +01:00
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|
|
|
|
- name: Run Linux centos tests
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "linux" "centos"
|
|
|
|
env:
|
2023-03-06 16:20:35 +01:00
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_LINUX }}
|
2023-03-01 17:46:40 +01:00
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|
|
|
|
- name: Run Linux fedora tests
|
2023-03-03 11:27:23 +01:00
|
|
|
if: inputs.TYPE == 'linux'
|
2023-03-01 17:46:40 +01:00
|
|
|
run: export $(echo "$TEST_DOMAINS" | xargs) && ./tests/main.py "linux" "fedora"
|
|
|
|
env:
|
2023-03-06 16:20:35 +01:00
|
|
|
TEST_DOMAINS: ${{ secrets.TEST_DOMAINS_LINUX }}
|
2023-03-09 10:04:59 +01:00
|
|
|
ROOT_DOMAIN: ${{ secrets.ROOT_DOMAIN }}
|