{"id": 136816, "seq": 3, "job": {"value": 27456, "label": "test"}, "repo": {"value": 611552758, "label": "apple-notes-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install '.[test]'\n", "env": null, "if": null} {"id": 136817, "seq": 4, "job": {"value": 27456, "label": "test"}, "repo": {"value": 611552758, "label": "apple-notes-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136820, "seq": 3, "job": {"value": 27457, "label": "deploy"}, "repo": {"value": 611552758, "label": "apple-notes-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine build\n", "env": null, "if": null} {"id": 136821, "seq": 4, "job": {"value": 27457, "label": "deploy"}, "repo": {"value": 611552758, "label": "apple-notes-to-sqlite"}, "uses": null, "name": "Publish", "with": null, "run": "python -m build\ntwine upload dist/*\n", "env": "{\"TWINE_USERNAME\": \"__token__\", \"TWINE_PASSWORD\": \"${{ secrets.PYPI_TOKEN }}\"}", "if": null} {"id": 136824, "seq": 3, "job": {"value": 27458, "label": "test"}, "repo": {"value": 611552758, "label": "apple-notes-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install '.[test]'\n", "env": null, "if": null} {"id": 136825, "seq": 4, "job": {"value": 27458, "label": "test"}, "repo": {"value": 611552758, "label": "apple-notes-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136826, "seq": 5, "job": {"value": 27458, "label": "test"}, "repo": {"value": 611552758, "label": "apple-notes-to-sqlite"}, "uses": null, "name": "Check if README is up-to-date", "with": null, "run": "cog --check README.md\n", "env": null, "if": null} {"id": 136830, "seq": 4, "job": {"value": 27459, "label": "test"}, "repo": {"value": 197431109, "label": "dogsheep-beta"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136831, "seq": 5, "job": {"value": 27459, "label": "test"}, "repo": {"value": 197431109, "label": "dogsheep-beta"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest -v\n", "env": null, "if": null} {"id": 136835, "seq": 4, "job": {"value": 27460, "label": "deploy"}, "repo": {"value": 197431109, "label": "dogsheep-beta"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 136836, "seq": 5, "job": {"value": 27460, "label": "deploy"}, "repo": {"value": 197431109, "label": "dogsheep-beta"}, "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": 136840, "seq": 4, "job": {"value": 27461, "label": "test"}, "repo": {"value": 197431109, "label": "dogsheep-beta"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136841, "seq": 5, "job": {"value": 27461, "label": "test"}, "repo": {"value": 197431109, "label": "dogsheep-beta"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest -v\n", "env": null, "if": null} {"id": 136845, "seq": 4, "job": {"value": 27462, "label": "build"}, "repo": {"value": 256834907, "label": "dogsheep-photos"}, "uses": null, "name": "Install dependencies", "with": null, "run": "python -m pip install --upgrade pip\npip install -e .[test]\n", "env": null, "if": null} {"id": 136846, "seq": 5, "job": {"value": 27462, "label": "build"}, "repo": {"value": 256834907, "label": "dogsheep-photos"}, "uses": null, "name": "Test with pytest", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136850, "seq": 4, "job": {"value": 27463, "label": "test"}, "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136851, "seq": 5, "job": {"value": 27463, "label": "test"}, "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136855, "seq": 4, "job": {"value": 27464, "label": "deploy"}, "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 136856, "seq": 5, "job": {"value": 27464, "label": "deploy"}, "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "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": 136860, "seq": 4, "job": {"value": 27465, "label": "test"}, "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136861, "seq": 5, "job": {"value": 27465, "label": "test"}, "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136865, "seq": 4, "job": {"value": 27466, "label": "scheduled"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Install Python dependencies", "with": null, "run": "python -m pip install --upgrade pip\npip install sqlite-utils>=3.1\nsqlite-utils --version\npip install -e .\npip install datasette\npip install bs4\n", "env": null, "if": null} {"id": 136866, "seq": 5, "job": {"value": 27466, "label": "scheduled"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Create auth.json", "with": null, "run": "echo \"{\\\"github_personal_token\\\": \\\"$GITHUB_ACCESS_TOKEN\\\"}\" > auth.json\n", "env": "{\"GITHUB_ACCESS_TOKEN\": \"${{ secrets.GH_TOKEN }}\"}", "if": null} {"id": 136867, "seq": 6, "job": {"value": 27466, "label": "scheduled"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Fetch previous copy of database", "with": null, "run": "# So we can keep track of when we first saw each dependent repo\nwget https://github-to-sqlite.dogsheep.net/github.db", "env": null, "if": "!contains(github.event.head_commit.message, 'REFRESH_DB')"} {"id": 136868, "seq": 7, "job": {"value": 27466, "label": "scheduled"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Fetch the repos", "with": null, "run": "github-to-sqlite repos github.db dogsheep\nsqlite-utils tables --counts github.db", "env": null, "if": null} {"id": 136869, "seq": 8, "job": {"value": 27466, "label": "scheduled"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Fetch releases, commits, issues, contributors", "with": null, "run": "sqlite-utils github.db \"select full_name from repos where owner = 53015001 union select 'simonw/datasette' as full_name union select 'simonw/sqlite-utils' as full_name\" \\\n --csv --no-headers | while read repo;\n do github-to-sqlite releases \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite commits \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite tags \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite contributors \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite issues \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite pull-requests \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite issue-comments \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite stargazers \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n github-to-sqlite workflows \\\n github.db $(echo $repo | tr -d '\\r');\n sleep 10;\n done;\n# Scrape dependents\ngithub-to-sqlite scrape-dependents github.db simonw/datasette simonw/sqlite-utils -v\nsqlite-utils tables --counts github.db\n# Delete email addresses from raw_authors\nsqlite-utils github.db \"update raw_authors set email = ''\"\n# Fetch emojis\ngithub-to-sqlite emojis github.db --fetch\n# Rebuild FTS tables\nsqlite-utils rebuild-fts github.db\n# Populate _analyze_tables_ table\nsqlite-utils analyze-tables github.db --save", "env": null, "if": null} {"id": 136872, "seq": 11, "job": {"value": 27466, "label": "scheduled"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Deploy to Cloud Run", "with": null, "run": "gcloud config set run/region us-central1\ngcloud config set project datasette-222320\ndatasette publish cloudrun github.db \\\n -m demo-metadata.json \\\n --service github-to-sqlite \\\n --install=datasette-search-all>=0.3 \\\n --install=datasette-render-markdown>=1.1.2 \\\n --install=datasette-pretty-json>=0.2.2 \\\n --install=datasette-json-html \\\n --install=datasette-vega \\\n --install=datasette-render-images \\\n --install=datasette-graphql \\\n --install=datasette-atom", "env": null, "if": null} {"id": 136876, "seq": 4, "job": {"value": 27467, "label": "test"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136877, "seq": 5, "job": {"value": 27467, "label": "test"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136881, "seq": 4, "job": {"value": 27468, "label": "deploy"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 136882, "seq": 5, "job": {"value": 27468, "label": "deploy"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "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": 136884, "seq": 2, "job": {"value": 27469, "label": "build"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Update TOC", "with": null, "run": "npx markdown-toc README.md -i", "env": null, "if": null} {"id": 136885, "seq": 3, "job": {"value": 27469, "label": "build"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Commit and push if README changed", "with": null, "run": "git diff\ngit config --global user.email \"readme-bot@example.com\"\ngit config --global user.name \"README-bot\"\ngit diff --quiet || (git add README.md && git commit -m \"Updated README\")\ngit push", "env": null, "if": null} {"id": 136889, "seq": 4, "job": {"value": 27470, "label": "test"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136890, "seq": 5, "job": {"value": 27470, "label": "test"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136894, "seq": 4, "job": {"value": 27471, "label": "test"}, "repo": {"value": 248903544, "label": "hacker-news-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136895, "seq": 5, "job": {"value": 27471, "label": "test"}, "repo": {"value": 248903544, "label": "hacker-news-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136899, "seq": 4, "job": {"value": 27472, "label": "deploy"}, "repo": {"value": 248903544, "label": "hacker-news-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 136900, "seq": 5, "job": {"value": 27472, "label": "deploy"}, "repo": {"value": 248903544, "label": "hacker-news-to-sqlite"}, "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": 136904, "seq": 4, "job": {"value": 27473, "label": "test"}, "repo": {"value": 248903544, "label": "hacker-news-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136905, "seq": 5, "job": {"value": 27473, "label": "test"}, "repo": {"value": 248903544, "label": "hacker-news-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136909, "seq": 4, "job": {"value": 27474, "label": "test"}, "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136910, "seq": 5, "job": {"value": 27474, "label": "test"}, "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136914, "seq": 4, "job": {"value": 27475, "label": "deploy"}, "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 136915, "seq": 5, "job": {"value": 27475, "label": "deploy"}, "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "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": 136919, "seq": 4, "job": {"value": 27476, "label": "test"}, "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136920, "seq": 5, "job": {"value": 27476, "label": "test"}, "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136923, "seq": 3, "job": {"value": 27477, "label": "test"}, "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install '.[test]'\n", "env": null, "if": null} {"id": 136924, "seq": 4, "job": {"value": 27477, "label": "test"}, "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136927, "seq": 3, "job": {"value": 27478, "label": "deploy"}, "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine build\n", "env": null, "if": null} {"id": 136928, "seq": 4, "job": {"value": 27478, "label": "deploy"}, "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "uses": null, "name": "Publish", "with": null, "run": "python -m build\ntwine upload dist/*\n", "env": "{\"TWINE_USERNAME\": \"__token__\", \"TWINE_PASSWORD\": \"${{ secrets.PYPI_TOKEN }}\"}", "if": null} {"id": 136931, "seq": 3, "job": {"value": 27479, "label": "test"}, "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install '.[test]'\n", "env": null, "if": null} {"id": 136932, "seq": 4, "job": {"value": 27479, "label": "test"}, "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136935, "seq": 3, "job": {"value": 27480, "label": "test"}, "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136936, "seq": 4, "job": {"value": 27480, "label": "test"}, "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136939, "seq": 3, "job": {"value": 27481, "label": "deploy"}, "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 136940, "seq": 4, "job": {"value": 27481, "label": "deploy"}, "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "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": 136943, "seq": 3, "job": {"value": 27482, "label": "test"}, "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136944, "seq": 4, "job": {"value": 27482, "label": "test"}, "repo": {"value": 205429375, "label": "swarm-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136948, "seq": 4, "job": {"value": 27483, "label": "test"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136949, "seq": 5, "job": {"value": 27483, "label": "test"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136953, "seq": 4, "job": {"value": 27484, "label": "deploy"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install setuptools wheel twine\n", "env": null, "if": null} {"id": 136954, "seq": 5, "job": {"value": 27484, "label": "deploy"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "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": 136956, "seq": 2, "job": {"value": 27485, "label": "build"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "uses": null, "name": "Update TOC", "with": null, "run": "npx markdown-toc README.md -i", "env": null, "if": null} {"id": 136957, "seq": 3, "job": {"value": 27485, "label": "build"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "uses": null, "name": "Commit and push if README changed", "with": null, "run": "git diff\ngit config --global user.email \"readme-bot@example.com\"\ngit config --global user.name \"README-bot\"\ngit diff --quiet || (git add README.md && git commit -m \"Updated README\")\ngit push", "env": null, "if": null} {"id": 136961, "seq": 4, "job": {"value": 27486, "label": "test"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test]'\n", "env": null, "if": null} {"id": 136962, "seq": 5, "job": {"value": 27486, "label": "test"}, "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136965, "seq": 3, "job": {"value": 27487, "label": "deploy-branch-preview"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install datasette-publish-vercel\n", "env": null, "if": null} {"id": 136966, "seq": 4, "job": {"value": 27487, "label": "deploy-branch-preview"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Deploy the preview", "with": null, "run": "export BRANCH=\"${{ github.event.inputs.branch }}\"\nwget https://latest.datasette.io/fixtures.db\ndatasette publish vercel fixtures.db \\\n --branch $BRANCH \\\n --project \"datasette-preview-$BRANCH\" \\\n --token $VERCEL_TOKEN \\\n --scope datasette \\\n --about \"Preview of $BRANCH\" \\\n --about_url \"https://github.com/simonw/datasette/tree/$BRANCH\"\n", "env": "{\"VERCEL_TOKEN\": \"${{ secrets.BRANCH_PREVIEW_VERCEL_TOKEN }}\"}", "if": null} {"id": 136970, "seq": 4, "job": {"value": 27488, "label": "deploy"}, "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 -e .[docs]\npython -m pip install sphinx-to-sqlite==0.1a1\n", "env": null, "if": null} {"id": 136971, "seq": 5, "job": {"value": 27488, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest -n auto -m \"not serial\"\npytest -m \"serial\"\n", "env": null, "if": "${{ github.ref == 'refs/heads/main' }}"} {"id": 136972, "seq": 6, "job": {"value": 27488, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Build fixtures.db", "with": null, "run": "python tests/fixtures.py fixtures.db fixtures.json plugins --extra-db-filename extra_database.db", "env": null, "if": null} {"id": 136973, "seq": 7, "job": {"value": 27488, "label": "deploy"}, "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": "${{ github.ref == 'refs/heads/main' }}"} {"id": 136974, "seq": 8, "job": {"value": 27488, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Set up the alternate-route demo", "with": null, "run": "echo '\nfrom datasette import hookimpl\n\n@hookimpl\ndef startup(datasette):\n db = datasette.get_database(\"fixtures2\")\n db.route = \"alternative-route\"\n' > plugins/alternative_route.py\ncp fixtures.db fixtures2.db\n", "env": null, "if": null} {"id": 136975, "seq": 9, "job": {"value": 27488, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Make some modifications to metadata.json", "with": null, "run": "cat fixtures.json | \\\n jq '.databases |= . + {\"ephemeral\": {\"allow\": {\"id\": \"*\"}}}' | \\\n jq '.plugins |= . + {\"datasette-ephemeral-tables\": {\"table_ttl\": 900}}' \\\n > metadata.json\ncat metadata.json\n", "env": null, "if": null} {"id": 136977, "seq": 11, "job": {"value": 27488, "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 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": 136978, "seq": 12, "job": {"value": 27488, "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": 136982, "seq": 3, "job": {"value": 27490, "label": "prettier"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "npm ci", "env": null, "if": null} {"id": 136983, "seq": 4, "job": {"value": 27490, "label": "prettier"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run prettier", "with": null, "run": "npm run prettier -- --check", "env": null, "if": null} {"id": 136987, "seq": 4, "job": {"value": 27491, "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": 136988, "seq": 5, "job": {"value": 27491, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Run tests", "with": null, "run": "pytest\n", "env": null, "if": null} {"id": 136992, "seq": 4, "job": {"value": 27492, "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": 136993, "seq": 5, "job": {"value": 27492, "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": 136997, "seq": 4, "job": {"value": 27493, "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": 136998, "seq": 5, "job": {"value": 27493, "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": 137000, "seq": 7, "job": {"value": 27493, "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": 137002, "seq": 2, "job": {"value": 27494, "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": 137004, "seq": 2, "job": {"value": 27495, "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": 137008, "seq": 4, "job": {"value": 27496, "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": 137009, "seq": 5, "job": {"value": 27496, "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": 137013, "seq": 4, "job": {"value": 27497, "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": 137014, "seq": 5, "job": {"value": 27497, "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": 137019, "seq": 4, "job": {"value": 27498, "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": 137020, "seq": 5, "job": {"value": 27498, "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": 137024, "seq": 4, "job": {"value": 27499, "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": 137025, "seq": 5, "job": {"value": 27499, "label": "test"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Install dependencies", "with": null, "run": "pip install -e '.[test,docs]'\npip freeze\n", "env": null, "if": null} {"id": 137026, "seq": 6, "job": {"value": 27499, "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": 137027, "seq": 7, "job": {"value": 27499, "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": null} {"id": 137028, "seq": 8, "job": {"value": 27499, "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": null} {"id": 137034, "seq": 2, "job": {"value": 27502, "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' }}"}