Skip to content

ci: add .deepsource.toml #112

ci: add .deepsource.toml

ci: add .deepsource.toml #112

Workflow file for this run

name: CI/CD
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build-publish-testpypi:
outputs:
TIMESTEP_VERSION: ${{ steps.build_step.outputs.TIMESTEP_VERSION }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Prepare environment
env:
SECRETS_CONTEXT: ${{ toJson(secrets) }}
VARS_CONTEXT: ${{ toJson(vars) }}
run: |
if [ -n "$SECRETS_CONTEXT" ] && [ "$(echo "$SECRETS_CONTEXT" | jq -e . > /dev/null 2>&1; echo $?)" -eq 0 ]; then
secret_keys=$(echo "$SECRETS_CONTEXT" | jq -r 'keys[]')
else
secret_keys=""
fi
for key in $secret_keys; do
if [ "$key" != "github_token" ]; then
lowercase_key=$(echo "$key" | tr '[:upper:]' '[:lower:]')
secret_value=$(echo "$SECRETS_CONTEXT" | jq -r ".$key")
mkdir -p ~/.config/timestep/secrets && echo "$secret_value" > ~/.config/timestep/secrets/$lowercase_key
fi
done
if [ -n "$VARS_CONTEXT" ] && [ "$(echo "$VARS_CONTEXT" | jq -e . > /dev/null 2>&1; echo $?)" -eq 0 ]; then
var_keys=$(echo "$VARS_CONTEXT" | jq -r 'keys[]')
else
var_keys=""
fi
cp .env.example .env
for key in $var_keys; do
var_value=$(echo "$VARS_CONTEXT" | jq -r ".$key")
echo "$key=$var_value" >> .env
done
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- id: build_step
name: Install timestep
run: |
python3 -m pip install --upgrade pip
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install poetry==1.8.3 # TODO: Put the version in the environment
make
poetry publish --build --no-interaction --password=$(cat ~/.config/timestep/secrets/poetry_pypi_token_testpypi) --repository=testpypi --username=__token__
echo "TIMESTEP_VERSION=$(poetry version | awk '{print $2}')" >> $GITHUB_OUTPUT
build-publish-testpypi-verify:
needs: build-publish-testpypi
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12']
runs-on: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
python3 -m pip install --user pipx
python3 -m pipx ensurepath
which pipx
pipx --version
- name: Install timestep
uses: nick-fields/retry@v3
with:
command: pipx install --index-url https://test.pypi.org/simple/ --pip-args="--extra-index-url https://pypi.org/simple/" -vvv timestep==${{ needs.build-publish-testpypi.outputs.TIMESTEP_VERSION }}
max_attempts: 3
retry_on: error
timeout_minutes: 15
- name: Verify
run: |
timestep up --help
build-publish-pypi:
needs: build-publish-testpypi-verify
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Prepare environment
env:
SECRETS_CONTEXT: ${{ toJson(secrets) }}
VARS_CONTEXT: ${{ toJson(vars) }}
run: |
if [ -n "$SECRETS_CONTEXT" ] && [ "$(echo "$SECRETS_CONTEXT" | jq -e . > /dev/null 2>&1; echo $?)" -eq 0 ]; then
secret_keys=$(echo "$SECRETS_CONTEXT" | jq -r 'keys[]')
else
secret_keys=""
fi
for key in $secret_keys; do
if [ "$key" != "github_token" ]; then
lowercase_key=$(echo "$key" | tr '[:upper:]' '[:lower:]')
secret_value=$(echo "$SECRETS_CONTEXT" | jq -r ".$key")
mkdir -p ~/.config/timestep/secrets && echo "$secret_value" > ~/.config/timestep/secrets/$lowercase_key
fi
done
if [ -n "$VARS_CONTEXT" ] && [ "$(echo "$VARS_CONTEXT" | jq -e . > /dev/null 2>&1; echo $?)" -eq 0 ]; then
var_keys=$(echo "$VARS_CONTEXT" | jq -r 'keys[]')
else
var_keys=""
fi
cp .env.example .env
for key in $var_keys; do
var_value=$(echo "$VARS_CONTEXT" | jq -r ".$key")
echo "$key=$var_value" >> .env
done
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install timestep
run: |
python3 -m pip install --upgrade pip
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install poetry==1.8.3 # TODO: Put the version in the environment
make
poetry publish --build --no-interaction --password=$(cat ~/.config/timestep/secrets/poetry_pypi_token_pypi) --username=__token__