152 lines
3.9 KiB
YAML
152 lines
3.9 KiB
YAML
name: Django CI Pipeline
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- release
|
|
- testing-pipeline
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- release
|
|
|
|
jobs:
|
|
test:
|
|
|
|
runs-on: self-hosted
|
|
|
|
env:
|
|
SECRET_KEY: "t3st-dummy-s3cr3t-k3y"
|
|
STATIC_ROOT: "tmp/static/"
|
|
MEDIA_ROOT: "tmp/media/"
|
|
DOMAIN: "testserver"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Check version and distribution
|
|
run: |
|
|
uname -srm
|
|
cat /etc/os-release
|
|
|
|
- name: Install python3-venv
|
|
id: install
|
|
run: |
|
|
apt-get update
|
|
apt-get install python3 python3-venv python3-pip -y
|
|
|
|
- name: Check Python version
|
|
run: |
|
|
python3 --version
|
|
|
|
- name: Create virtual environment
|
|
run: |
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
echo "Virtual environment created successfully"
|
|
# https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context
|
|
if: steps.install.outcome == 'success'
|
|
|
|
- name: Get DIDKit wheel
|
|
id: didkit
|
|
run: |
|
|
wget -O didkit-0.3.2-cp311-cp311-manylinux_2_34_x86_64.whl https://gitea.pangea.org/api/v1/repos/trustchain-oc1-orchestral/ssikit_trustchain/raw/didkit-0.3.2-cp311-cp311-manylinux_2_34_x86_64.whl?token=${{ secrets.FILE_GETTER_TOKEN }}
|
|
echo "Successfully downloaded DIDkit"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
source venv/bin/activate
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
if: steps.didkit.outcome == 'success'
|
|
|
|
- name: Run tests
|
|
run: |
|
|
source venv/bin/activate
|
|
coverage run manage.py test
|
|
# python manage.py test
|
|
#
|
|
- name: Coverage report
|
|
run: |
|
|
source venv/bin/activate
|
|
coverage report
|
|
|
|
ssikit-tests:
|
|
needs: test
|
|
runs-on: self-hosted
|
|
steps:
|
|
|
|
- name: Checkout SSIKit repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: trustchain-oc1-orchestral/ssikit_trustchain
|
|
submodules: true
|
|
ref: master
|
|
# might not be needed
|
|
token: ${{ secrets.SSIKIT_TOKEN }}
|
|
|
|
- name: Install python3-venv (if not already installed)
|
|
run: |
|
|
apt-get update
|
|
apt-get install python3 python3-venv python3-pip -y
|
|
|
|
- name: Setup Python environment
|
|
run: |
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
source venv/bin/activate
|
|
pip install --upgrade pip
|
|
# Install any additional dependencies required for SSIKit tests here
|
|
pip install -r requirements.txt
|
|
|
|
- name: Execute SSIKit tests
|
|
run: |
|
|
source venv/bin/activate
|
|
python main.py
|
|
|
|
deploy-testing-instances:
|
|
needs: test
|
|
runs-on: self-hosted
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Trigger Remote Script
|
|
run: |
|
|
response=$(curl -s -o /dev/null -w "%{http_code}" -X POST http://45.150.187.54:5000/trigger-script -H "Authorization: SecretToken")
|
|
if [ "$response" -ne 200 ]; then
|
|
echo "Script execution failed with HTTP status $response"
|
|
exit 1
|
|
else
|
|
echo "Script execution successful"
|
|
exit 0
|
|
fi
|
|
if: success() && github.ref == 'refs/heads/release'
|
|
|
|
end2end-tests:
|
|
needs: deploy-testing-instances
|
|
runs-on: self-hosted
|
|
steps:
|
|
|
|
- name: Checkout E2E tests repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: trustchain-oc1-orchestral/IdHub_E2E_testing
|
|
ref: master
|
|
token: ${{ secrets.SSIKIT_TOKEN }}
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
npm ci
|
|
|
|
- name: Install Playwright browsers
|
|
run: |
|
|
npx playwright install --with-deps
|
|
|
|
- name: Run Playwright tests
|
|
run: |
|
|
npx playwright test
|