update dock in ci-unittest.yml #25
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: ci-unittest | |
# This workflow runs unittests on multiple Python versions, | |
# and uploads the coverage report to Codecov. | |
# | |
# This workflow is triggered by: | |
# - a manual trigger | |
# - a push to the repository with changes in the certain paths | |
# - a pull request to the master branch | |
# - a monthly schedule | |
on: | |
workflow_dispatch: | |
push: | |
paths: | |
- '.github/workflows/ci-unittest.yml' | |
- 'bin/**' | |
- 'shadowsocks_manager/**' | |
- '!shadowsocks_manager/uwsgi.ini' | |
pull_request: | |
branches: | |
- master | |
schedule: | |
- cron: '23 11 1 * *' | |
jobs: | |
unittest: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.7.17', '3.8.18', '3.9.19', '3.10.14', '3.11.9', '3.12.3'] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install system packages | |
run: | | |
pip install --upgrade pip | |
pip install coverage codecov-cli | |
echo -e '#!/usr/bin/env bash\n' | sudo tee /usr/sbin/sendmail | |
sudo chmod 755 /usr/sbin/sendmail | |
docker run -d -p 11211:11211 --name ssm-dev-memcached memcached | |
docker run -d -p 5672:5672 --name ssm-dev-rabbitmq rabbitmq | |
# run shadowsocks-libev, simulate localhost node | |
MGR_PORT=6001 SS_PORTS=8381-8479 ENCRYPT=aes-256-cfb | |
docker run -d -p 127.0.0.1:$MGR_PORT:$MGR_PORT/UDP \ | |
-p 127.0.0.1:$SS_PORTS:$SS_PORTS/UDP -p 127.0.0.1:$SS_PORTS:$SS_PORTS \ | |
--name ssm-dev-ss-libev-localhost shadowsocks/shadowsocks-libev:edge \ | |
ss-manager --manager-address 0.0.0.0:$MGR_PORT \ | |
--executable /usr/local/bin/ss-server -m $ENCRYPT -s 0.0.0.0 -u | |
# get private IP | |
PRIVATE_IP=$(hostname -i | awk '{print $1}') | |
# run shadowsocks-libev, simulate private IP node | |
MGR_PORT=6002 SS_PORTS=8381-8479 ENCRYPT=aes-256-cfb | |
docker run -d -p $PRIVATE_IP:$MGR_PORT:$MGR_PORT/UDP \ | |
-p $PRIVATE_IP:$SS_PORTS:$SS_PORTS/UDP -p $PRIVATE_IP:$SS_PORTS:$SS_PORTS \ | |
--name ssm-dev-ss-libev-private shadowsocks/shadowsocks-libev:edge \ | |
ss-manager --manager-address 0.0.0.0:$MGR_PORT \ | |
--executable /usr/local/bin/ss-server -m $ENCRYPT -s 0.0.0.0 -u | |
# run shadowsocks-libev, simulate public IP node | |
MGR_PORT=6003 SS_PORTS=8480 ENCRYPT=aes-256-cfb | |
docker run -d -p $PRIVATE_IP:$MGR_PORT:$MGR_PORT/UDP \ | |
-p $PRIVATE_IP:$SS_PORTS:$SS_PORTS/UDP -p $PRIVATE_IP:$SS_PORTS:$SS_PORTS \ | |
--name ssm-dev-ss-libev-public shadowsocks/shadowsocks-libev:edge \ | |
ss-manager --manager-address 0.0.0.0:$MGR_PORT \ | |
--executable /usr/local/bin/ss-server -m $ENCRYPT -s 0.0.0.0 -u | |
- name: Install this project | |
run: | | |
pip install -e . | |
ssm-setup -m | |
- name: Run Django testcases | |
run: ssm-test -c | |
- name: Upload coverage report to Codecov | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
run: ssm-test -u |