{"id": 138914, "seq": 14, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Check if cog needs to be run", "with": null, "run": "cog --check README.md docs/*.rst\n", "env": null, "if": "matrix.python-version != '3.7'"} {"id": 138913, "seq": 13, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Check formatting", "with": null, "run": "black . --check", "env": null, "if": null} {"id": 138912, "seq": 12, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "run flake8 if Python 3.8 or higher", "with": null, "run": "flake8", "env": null, "if": "matrix.python-version >= 3.8"} {"id": 138911, "seq": 11, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "run mypy", "with": null, "run": "mypy sqlite_utils tests", "env": null, "if": null} {"id": 138910, "seq": 10, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest -v\n", "env": null, "if": null} {"id": 138909, "seq": 9, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Build extension for --load-extension test", "with": null, "run": "(cd tests && gcc ext.c -fPIC -shared -o ext.so && ls -lah)", "env": null, "if": "matrix.os == 'ubuntu-latest'"} {"id": 138908, "seq": 8, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "On macOS with Python 3.10 test with sqlean.py", "with": null, "run": "pip install sqlean.py sqlite-dump", "env": null, "if": "matrix.os == 'macos-latest' && matrix.python-version == '3.10'"} {"id": 138907, "seq": 7, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Install SpatiaLite", "with": null, "run": "sudo apt-get install libsqlite3-mod-spatialite", "env": null, "if": "matrix.os == 'ubuntu-latest'"} {"id": 138906, "seq": 6, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Optionally install numpy", "with": null, "run": "pip install numpy", "env": null, "if": "matrix.numpy == 1"} {"id": 138905, "seq": 5, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Optionally install tui dependencies (not 3.7)", "with": null, "run": "pip install -e '.[tui]'", "env": null, "if": "matrix.python-version != '3.7'"} {"id": 138904, "seq": 4, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test,mypy,flake8]'\n", "env": null, "if": null} {"id": 138903, "seq": 3, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/cache@v3", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138902, "seq": 2, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/setup-python@v4", "name": "Set up Python ${{ matrix.python-version }}", "with": "{\"python-version\": \"${{ matrix.python-version }}\"}", "run": null, "env": null, "if": null} {"id": 138901, "seq": 1, "job": {"value": 27879, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138900, "seq": 7, "job": {"value": 27878, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "codecov/codecov-action@v1", "name": "Upload coverage report", "with": "{\"token\": \"${{ secrets.CODECOV_TOKEN }}\", \"file\": \"coverage.xml\"}", "run": null, "env": null, "if": null} {"id": 138899, "seq": 6, "job": {"value": 27878, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Run tests", "with": null, "run": "ls -lah\npytest --cov=sqlite_utils --cov-report xml:coverage.xml --cov-report term\nls -lah", "env": null, "if": null} {"id": 138898, "seq": 5, "job": {"value": 27878, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Install Python dependencies", "with": null, "run": "python -m pip install --upgrade pip\npython -m pip install -e .[test]\npython -m pip install pytest-cov\n", "env": null, "if": null} {"id": 138897, "seq": 4, "job": {"value": 27878, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Install SpatiaLite", "with": null, "run": "sudo apt-get install libsqlite3-mod-spatialite", "env": null, "if": null} {"id": 138896, "seq": 3, "job": {"value": 27878, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/cache@v2", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138895, "seq": 2, "job": {"value": 27878, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/setup-python@v2", "name": "Set up Python", "with": "{\"python-version\": 3.9}", "run": null, "env": null, "if": null} {"id": 138894, "seq": 1, "job": {"value": 27878, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/checkout@v2", "name": "Check out repo", "with": null, "run": null, "env": null, "if": null} {"id": 138893, "seq": 5, "job": {"value": 27877, "label": "spellcheck"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Check spelling", "with": null, "run": "codespell docs/*.rst --ignore-words docs/codespell-ignore-words.txt\ncodespell sqlite_utils --ignore-words docs/codespell-ignore-words.txt\n", "env": null, "if": null} {"id": 138892, "seq": 4, "job": {"value": 27877, "label": "spellcheck"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[docs]'\n", "env": null, "if": null} {"id": 138891, "seq": 3, "job": {"value": 27877, "label": "spellcheck"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/cache@v2", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138890, "seq": 2, "job": {"value": 27877, "label": "spellcheck"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/setup-python@v2", "name": "Set up Python ${{ matrix.python-version }}", "with": "{\"python-version\": 3.9}", "run": null, "env": null, "if": null} {"id": 138889, "seq": 1, "job": {"value": 27877, "label": "spellcheck"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/checkout@v2", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138888, "seq": 5, "job": {"value": 27876, "label": "deploy"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Publish", "with": null, "run": "python setup.py sdist bdist_wheel\ntwine upload dist/*\n", "env": "{\"TWINE_USERNAME\": \"__token__\", \"TWINE_PASSWORD\": \"${{ secrets.PYPI_TOKEN }}\"}", "if": null} {"id": 138887, "seq": 4, "job": {"value": 27876, "label": "deploy"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 138886, "seq": 3, "job": {"value": 27876, "label": "deploy"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/cache@v3", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-publish-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-publish-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138885, "seq": 2, "job": {"value": 27876, "label": "deploy"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/setup-python@v4", "name": "Set up Python", "with": "{\"python-version\": \"3.12\"}", "run": null, "env": null, "if": null} {"id": 138884, "seq": 1, "job": {"value": 27876, "label": "deploy"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138883, "seq": 5, "job": {"value": 27875, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 138882, "seq": 4, "job": {"value": 27875, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 138881, "seq": 3, "job": {"value": 27875, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/cache@v3", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138880, "seq": 2, "job": {"value": 27875, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/setup-python@v4", "name": "Set up Python ${{ matrix.python-version }}", "with": "{\"python-version\": \"${{ matrix.python-version }}\"}", "run": null, "env": null, "if": null} {"id": 138879, "seq": 1, "job": {"value": 27875, "label": "test"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138878, "seq": 1, "job": {"value": 27874, "label": "documentation-links"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "readthedocs/actions/preview@v1", "name": null, "with": "{\"project-slug\": \"sqlite-utils\"}", "run": null, "env": null, "if": null} {"id": 138877, "seq": 5, "job": {"value": 27873, "label": "Analyze"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "github/codeql-action/analyze@v1", "name": "Perform CodeQL Analysis", "with": null, "run": null, "env": null, "if": null} {"id": 138876, "seq": 4, "job": {"value": 27873, "label": "Analyze"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "github/codeql-action/autobuild@v1", "name": "Autobuild", "with": null, "run": null, "env": null, "if": null} {"id": 138875, "seq": 3, "job": {"value": 27873, "label": "Analyze"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "github/codeql-action/init@v1", "name": "Initialize CodeQL", "with": "{\"languages\": \"${{ matrix.language }}\"}", "run": null, "env": null, "if": null} {"id": 138874, "seq": 2, "job": {"value": 27873, "label": "Analyze"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": null, "name": null, "with": null, "run": "git checkout HEAD^2", "env": null, "if": "${{ github.event_name == 'pull_request' }}"} {"id": 138873, "seq": 1, "job": {"value": 27873, "label": "Analyze"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "uses": "actions/checkout@v2", "name": "Checkout repository", "with": "{\"fetch-depth\": 2}", "run": null, "env": null, "if": null} {"id": 138872, "seq": 2, "job": {"value": 27872, "label": "build"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "mxschmitt/action-tmate@v3", "name": "Setup tmate session", "with": null, "run": null, "env": null, "if": null} {"id": 138871, "seq": 1, "job": {"value": 27872, "label": "build"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v2", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138870, "seq": 2, "job": {"value": 27871, "label": "build"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "mxschmitt/action-tmate@v3", "name": "Setup tmate session", "with": null, "run": null, "env": null, "if": null} {"id": 138869, "seq": 1, "job": {"value": 27871, "label": "build"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v2", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138868, "seq": 10, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Test DATASETTE_LOAD_PLUGINS", "with": null, "run": "pip install datasette-init datasette-json-html\ntests/test-datasette-load-plugins.sh\n", "env": null, "if": null} {"id": 138867, "seq": 9, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Check if blacken-docs needs to be run", "with": null, "run": "# This fails on syntax errors, or a diff was applied\nblacken-docs -l 60 docs/*.rst\n", "env": null, "if": "matrix.python-version != '3.8'"} {"id": 138866, "seq": 8, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Check if cog needs to be run", "with": null, "run": "cog --check docs/*.rst\n", "env": null, "if": "matrix.python-version != '3.8'"} {"id": 138865, "seq": 7, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install docs dependencies on Python 3.9+", "with": null, "run": "pip install -e '.[docs]'\n", "env": null, "if": "matrix.python-version != '3.8'"} {"id": 138864, "seq": 6, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest -n auto -m \"not serial\"\npytest -m \"serial\"\n# And the test that exceeds a localhost HTTPS server\ntests/test_datasette_https_server.sh\n", "env": null, "if": null} {"id": 138863, "seq": 5, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\npip freeze\n", "env": null, "if": null} {"id": 138862, "seq": 4, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Build extension for --load-extension test", "with": null, "run": "(cd tests && gcc ext.c -fPIC -shared -o ext.so)", "env": null, "if": null} {"id": 138861, "seq": 3, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/cache@v3", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138860, "seq": 2, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v4", "name": "Set up Python ${{ matrix.python-version }}", "with": "{\"python-version\": \"${{ matrix.python-version }}\", \"allow-prereleases\": true}", "run": null, "env": null, "if": null} {"id": 138859, "seq": 1, "job": {"value": 27870, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138858, "seq": 5, "job": {"value": 27869, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run test", "with": null, "run": "./test-in-pyodide-with-shot-scraper.sh\n", "env": null, "if": null} {"id": 138857, "seq": 4, "job": {"value": 27869, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install Playwright dependencies", "with": null, "run": "pip install shot-scraper build\nshot-scraper install\n", "env": null, "if": null} {"id": 138856, "seq": 3, "job": {"value": 27869, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/cache@v2", "name": "Cache Playwright browsers", "with": "{\"path\": \"~/.cache/ms-playwright/\", \"key\": \"${{ runner.os }}-browsers\"}", "run": null, "env": null, "if": null} {"id": 138855, "seq": 2, "job": {"value": 27869, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v3", "name": "Set up Python 3.10", "with": "{\"python-version\": \"3.10\", \"cache\": \"pip\", \"cache-dependency-path\": \"**/setup.py\"}", "run": null, "env": null, "if": null} {"id": 138854, "seq": 1, "job": {"value": 27869, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138853, "seq": 6, "job": {"value": 27868, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "codecov/codecov-action@v1", "name": "Upload coverage report", "with": "{\"token\": \"${{ secrets.CODECOV_TOKEN }}\", \"file\": \"coverage.xml\"}", "run": null, "env": null, "if": null} {"id": 138852, "seq": 5, "job": {"value": 27868, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run tests", "with": null, "run": "ls -lah\ncat .coveragerc\npytest --cov=datasette --cov-config=.coveragerc --cov-report xml:coverage.xml --cov-report term\nls -lah", "env": null, "if": null} {"id": 138851, "seq": 4, "job": {"value": 27868, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install Python dependencies", "with": null, "run": "python -m pip install --upgrade pip\npython -m pip install -e .[test]\npython -m pip install pytest-cov\n", "env": null, "if": null} {"id": 138850, "seq": 3, "job": {"value": 27868, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/cache@v2", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138849, "seq": 2, "job": {"value": 27868, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v2", "name": "Set up Python", "with": "{\"python-version\": 3.9}", "run": null, "env": null, "if": null} {"id": 138848, "seq": 1, "job": {"value": 27868, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v2", "name": "Check out datasette", "with": null, "run": null, "env": null, "if": null} {"id": 138847, "seq": 4, "job": {"value": 27867, "label": "spellcheck"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Check spelling", "with": null, "run": "codespell README.md --ignore-words docs/codespell-ignore-words.txt\ncodespell docs/*.rst --ignore-words docs/codespell-ignore-words.txt\ncodespell datasette -S datasette/static --ignore-words docs/codespell-ignore-words.txt\n", "env": null, "if": null} {"id": 138846, "seq": 3, "job": {"value": 27867, "label": "spellcheck"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[docs]'\n", "env": null, "if": null} {"id": 138845, "seq": 2, "job": {"value": 27867, "label": "spellcheck"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v4", "name": "Set up Python", "with": "{\"python-version\": \"3.11\", \"cache\": \"pip\", \"cache-dependency-path\": \"**/setup.py\"}", "run": null, "env": null, "if": null} {"id": 138844, "seq": 1, "job": {"value": 27867, "label": "spellcheck"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v4", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138843, "seq": 2, "job": {"value": 27866, "label": "deploy_docker"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Build and push to Docker Hub", "with": null, "run": "docker login -u $DOCKER_USER -p $DOCKER_PASS\nexport REPO=datasetteproject/datasette\ndocker build -f Dockerfile \\\n -t $REPO:${VERSION_TAG} \\\n --build-arg VERSION=${VERSION_TAG} .\ndocker push $REPO:${VERSION_TAG}", "env": "{\"DOCKER_USER\": \"${{ secrets.DOCKER_USER }}\", \"DOCKER_PASS\": \"${{ secrets.DOCKER_PASS }}\", \"VERSION_TAG\": \"${{ github.event.inputs.version_tag }}\"}", "if": null} {"id": 138842, "seq": 1, "job": {"value": 27866, "label": "deploy_docker"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v2", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138841, "seq": 2, "job": {"value": 27865, "label": "deploy_docker"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Build and push to Docker Hub", "with": null, "run": "sleep 60 # Give PyPI time to make the new release available\ndocker login -u $DOCKER_USER -p $DOCKER_PASS\nexport REPO=datasetteproject/datasette\ndocker build -f Dockerfile \\\n -t $REPO:${GITHUB_REF#refs/tags/} \\\n --build-arg VERSION=${GITHUB_REF#refs/tags/} .\ndocker tag $REPO:${GITHUB_REF#refs/tags/} $REPO:latest\ndocker push $REPO:${GITHUB_REF#refs/tags/}\ndocker push $REPO:latest", "env": "{\"DOCKER_USER\": \"${{ secrets.DOCKER_USER }}\", \"DOCKER_PASS\": \"${{ secrets.DOCKER_PASS }}\"}", "if": null} {"id": 138840, "seq": 1, "job": {"value": 27865, "label": "deploy_docker"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v2", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138839, "seq": 7, "job": {"value": 27864, "label": "deploy_static_docs"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Deploy stable-docs.datasette.io to Cloud Run", "with": null, "run": "gcloud config set run/region us-central1\ngcloud config set project datasette-222320\ndatasette publish cloudrun docs.db \\\n --service=datasette-docs-stable", "env": null, "if": null} {"id": 138838, "seq": 6, "job": {"value": 27864, "label": "deploy_static_docs"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "google-github-actions/setup-gcloud@v0", "name": "Set up Cloud Run", "with": "{\"version\": \"318.0.0\", \"service_account_email\": \"${{ secrets.GCP_SA_EMAIL }}\", \"service_account_key\": \"${{ secrets.GCP_SA_KEY }}\"}", "run": null, "env": null, "if": null} {"id": 138837, "seq": 5, "job": {"value": 27864, "label": "deploy_static_docs"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Build docs.db", "with": null, "run": "cd docs\nDISABLE_SPHINX_INLINE_TABS=1 sphinx-build -b xml . _build\nsphinx-to-sqlite ../docs.db _build\ncd ..", "env": null, "if": null} {"id": 138836, "seq": 4, "job": {"value": 27864, "label": "deploy_static_docs"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "python -m pip install -e .[docs]\npython -m pip install sphinx-to-sqlite==0.1a1\n", "env": null, "if": null} {"id": 138835, "seq": 3, "job": {"value": 27864, "label": "deploy_static_docs"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/cache@v2", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-publish-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-publish-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138834, "seq": 2, "job": {"value": 27864, "label": "deploy_static_docs"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v2", "name": "Set up Python", "with": "{\"python-version\": \"3.9\"}", "run": null, "env": null, "if": null} {"id": 138833, "seq": 1, "job": {"value": 27864, "label": "deploy_static_docs"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v2", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138832, "seq": 5, "job": {"value": 27863, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Publish", "with": null, "run": "python setup.py sdist bdist_wheel\ntwine upload dist/*\n", "env": "{\"TWINE_USERNAME\": \"__token__\", \"TWINE_PASSWORD\": \"${{ secrets.PYPI_TOKEN }}\"}", "if": null} {"id": 138831, "seq": 4, "job": {"value": 27863, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 138830, "seq": 3, "job": {"value": 27863, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/cache@v3", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-publish-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-publish-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138829, "seq": 2, "job": {"value": 27863, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v4", "name": "Set up Python", "with": "{\"python-version\": \"3.11\"}", "run": null, "env": null, "if": null} {"id": 138828, "seq": 1, "job": {"value": 27863, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138827, "seq": 5, "job": {"value": 27862, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 138826, "seq": 4, "job": {"value": 27862, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 138825, "seq": 3, "job": {"value": 27862, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/cache@v3", "name": "Configure pip caching", "with": "{\"path\": \"~/.cache/pip\", \"key\": \"${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}\", \"restore-keys\": \"${{ runner.os }}-pip-\\n\"}", "run": null, "env": null, "if": null} {"id": 138824, "seq": 2, "job": {"value": 27862, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v4", "name": "Set up Python ${{ matrix.python-version }}", "with": "{\"python-version\": \"${{ matrix.python-version }}\"}", "run": null, "env": null, "if": null} {"id": 138823, "seq": 1, "job": {"value": 27862, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138822, "seq": 4, "job": {"value": 27861, "label": "prettier"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run prettier", "with": null, "run": "npm run prettier -- --check", "env": null, "if": null} {"id": 138821, "seq": 3, "job": {"value": 27861, "label": "prettier"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "npm ci", "env": null, "if": null} {"id": 138820, "seq": 2, "job": {"value": 27861, "label": "prettier"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/cache@v2", "name": "Configure npm caching", "with": "{\"path\": \"~/.npm\", \"key\": \"${{ runner.OS }}-npm-${{ hashFiles('**/package-lock.json') }}\", \"restore-keys\": \"${{ runner.OS }}-npm-\\n\"}", "run": null, "env": null, "if": null} {"id": 138819, "seq": 1, "job": {"value": 27861, "label": "prettier"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v2", "name": "Check out repo", "with": null, "run": null, "env": null, "if": null} {"id": 138818, "seq": 1, "job": {"value": 27860, "label": "documentation-links"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "readthedocs/actions/preview@v1", "name": null, "with": "{\"project-slug\": \"datasette\"}", "run": null, "env": null, "if": null} {"id": 138817, "seq": 12, "job": {"value": 27859, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Deploy to docs as well (only for main)", "with": null, "run": "# Deploy docs.db to a different service\ndatasette publish cloudrun docs.db \\\n --branch=$GITHUB_SHA \\\n --version-note=$GITHUB_SHA \\\n --extra-options=\"--setting template_debug 1\" \\\n --service=datasette-docs-latest", "env": null, "if": "${{ github.ref == 'refs/heads/main' }}"} {"id": 138816, "seq": 11, "job": {"value": 27859, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Deploy to Cloud Run", "with": null, "run": "gcloud config set run/region us-central1\ngcloud config set project datasette-222320\nexport SUFFIX=\"-${GITHUB_REF#refs/heads/}\"\nexport SUFFIX=${SUFFIX#-main}\n# Replace 1.0 with one-dot-zero in SUFFIX\nexport SUFFIX=${SUFFIX//1.0/one-dot-zero}\ndatasette publish cloudrun fixtures.db fixtures2.db extra_database.db \\\n -m fixtures-metadata.json \\\n --plugins-dir=plugins \\\n --branch=$GITHUB_SHA \\\n --version-note=$GITHUB_SHA \\\n --extra-options=\"--setting template_debug 1 --setting trace_debug 1 --crossdb\" \\\n --install 'datasette-ephemeral-tables>=0.2.2' \\\n --service \"datasette-latest$SUFFIX\" \\\n --secret $LATEST_DATASETTE_SECRET", "env": "{\"LATEST_DATASETTE_SECRET\": \"${{ secrets.LATEST_DATASETTE_SECRET }}\"}", "if": null} {"id": 138815, "seq": 10, "job": {"value": 27859, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "google-github-actions/setup-gcloud@v0", "name": "Set up Cloud Run", "with": "{\"version\": \"318.0.0\", \"service_account_email\": \"${{ secrets.GCP_SA_EMAIL }}\", \"service_account_key\": \"${{ secrets.GCP_SA_KEY }}\"}", "run": null, "env": null, "if": null}