Merge pull request #80 from stackhpc/fix/ca-url #251
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
--- | |
name: Pull request | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build | |
run: make build | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build documentation | |
run: make docs | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Lint | |
run: make lint | |
- name: Install ansible-lint | |
run: pip install ansible-lint==6.17.* | |
- name: Install Ansible Galaxy requirements | |
run: ansible-galaxy collection install -r deployment/requirements.yml | |
- name: Lint Ansible playbook | |
run: ansible-lint deployment/site.yml | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Test | |
run: make test | |
compliance-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build | |
run: make build | |
- name: Checkout compliance test suite | |
uses: actions/checkout@v3 | |
with: | |
repository: stackhpc/s3-active-storage-compliance-suite | |
path: compliance | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
- name: Install compliance test suite dependencies | |
run: pip install -r requirements.txt | |
working-directory: compliance | |
- name: Configure compliance test suite | |
run: | | |
echo 'PROXY_URL = "http://localhost:8080"' >> compliance/config.py | |
working-directory: compliance | |
- name: Start minio object storage | |
run: scripts/minio-start | |
- name: Wait for minio object storage to start | |
run: | | |
until curl -if http://localhost:9001; do | |
sleep 1; | |
done | |
- name: Run active storage container | |
run: make run | |
- name: Wait for active storage server to start | |
run: | | |
until curl -if http://localhost:8080/.well-known/reductionist-schema; do | |
sleep 1; | |
done | |
- name: Create artifacts directory | |
run: mkdir artifacts | |
- name: Run compliance test suite | |
run: pytest -s > artifacts/pytest.log | |
- name: Get active storage logs | |
run: docker logs reductionist > artifacts/reductionist.log | |
if: always() | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: compliance-test | |
path: artifacts | |
if: always() | |
- name: Stop minio object storage | |
run: scripts/minio-stop | |
if: always() | |
- name: Stop active storage container | |
run: make stop | |
if: always() | |
deployment-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
- name: Install deployment dependencies | |
run: pip install -r deployment/requirements.txt | |
- name: Install Ansible Galaxy requirements | |
run: ansible-galaxy collection install -r deployment/requirements.yml | |
- name: Run Ansible playbook | |
# GitHub runner already has Docker installed. | |
run: ansible-playbook -i deployment/inventory deployment/site.yml --skip-tags docker | |
- name: Install Python client dependencies | |
run: pip install -r scripts/requirements.txt | |
- name: Upload some sample data | |
run: python ./scripts/upload_sample_data.py | |
- name: Perform a smoke test | |
run: > | |
# Get the local IP of the default route | |
ip=$(ip r get 8.8.8.8 | awk '/via/ { print $7 }') && | |
python ./scripts/client.py | |
sum | |
--server https://${ip}:8080 | |
--cacert root.crt | |
--source http://localhost:9000 | |
--username minioadmin --password minioadmin | |
--bucket sample-data --object data-uint32.dat | |
--dtype uint32 | |
- name: Debug on failure | |
run: | | |
set -x | |
set +e | |
docker ps -a | |
for container in $(docker ps -aq); do | |
docker logs $container | |
done | |
sudo ss -nltp | |
sudo cat /etc/haproxy/haproxy.cfg | |
sudo cat /etc/prometheus/prometheus.yml | |
sudo ip a | |
sudo ip r | |
if: failure() | |
dependency-review: | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Dependency Review | |
uses: actions/dependency-review-action@v3 | |
with: | |
# https://github.com/advisories/GHSA-g98v-hv3f-hcfr atty potential unaligned read on Windows | |
allow-ghsas: GHSA-g98v-hv3f-hcfr |