Add deployment playbook and CI test #228
Workflow file for this run
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 | |
# 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: 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 Ansible playbook | |
run: ansible-playbook -i deployment/inventory deployment/site.yml --skip-tags docker | |
- name: Wait for reductionist server to start | |
run: | | |
attempts=60 | |
until curl -if --cacert root.crt https://localhost:8080/.well-known/reductionist-schema; do | |
sleep 1; | |
let attempts=$((attempts - 1)) | |
if [[ $attempts -eq 0 ]]; then | |
echo "Timed out waiting for reductionist to start" | |
exit 1 | |
fi | |
done | |
- name: Upload some sample data | |
run: python ./scripts/upload_sample_data.py | |
- name: Perform a smoke test | |
run: > | |
python ./scripts/client.py | |
sum | |
--server https://localhost: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 | |
docker ps -a | |
for container in $(docker ps -aq); do | |
docker logs $container | |
done | |
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 |