{"id": 133396, "seq": 1, "job": {"value": 26772, "label": "mirror"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "zofrex/mirror-branch@ea152f124954fa4eb26eea3fe0dbe313a3a08d94", "name": "Mirror to \"master\"", "with": "{\"target-branch\": \"master\", \"force\": false}", "run": null, "env": null, "if": null} {"id": 133397, "seq": 2, "job": {"value": 26772, "label": "mirror"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "zofrex/mirror-branch@ea152f124954fa4eb26eea3fe0dbe313a3a08d94", "name": "Mirror to \"main\"", "with": "{\"target-branch\": \"main\", \"force\": false}", "run": null, "env": null, "if": null} {"id": 138802, "seq": 1, "job": {"value": 27858, "label": "deploy-branch-preview"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v3", "name": null, "with": null, "run": null, "env": null, "if": null} {"id": 138803, "seq": 2, "job": {"value": 27858, "label": "deploy-branch-preview"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v4", "name": "Set up Python 3.11", "with": "{\"python-version\": \"3.11\"}", "run": null, "env": null, "if": null} {"id": 138804, "seq": 3, "job": {"value": 27858, "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": 138805, "seq": 4, "job": {"value": 27858, "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": 138806, "seq": 1, "job": {"value": 27859, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/checkout@v3", "name": "Check out datasette", "with": null, "run": null, "env": null, "if": null} {"id": 138807, "seq": 2, "job": {"value": 27859, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": "actions/setup-python@v4", "name": "Set up Python", "with": "{\"python-version\": \"3.9\"}", "run": null, "env": null, "if": null} {"id": 138808, "seq": 3, "job": {"value": 27859, "label": "deploy"}, "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": 138809, "seq": 4, "job": {"value": 27859, "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": 138810, "seq": 5, "job": {"value": 27859, "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": 138811, "seq": 6, "job": {"value": 27859, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "Build fixtures.db and other files needed to deploy the demo", "with": null, "run": "python tests/fixtures.py \\\n fixtures.db \\\n fixtures-config.json \\\n fixtures-metadata.json \\\n plugins \\\n --extra-db-filename extra_database.db", "env": null, "if": null} {"id": 138812, "seq": 7, "job": {"value": 27859, "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": 138813, "seq": 8, "job": {"value": 27859, "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": 138814, "seq": 9, "job": {"value": 27859, "label": "deploy"}, "repo": {"value": 107914493, "label": "datasette"}, "uses": null, "name": "And the counters writable canned query demo", "with": null, "run": "cat > plugins/counters.py <=0.2.2' \\\n --service \"datasette-latest$SUFFIX\" \\\n --secret $LATEST_DATASETTE_SECRET", "env": "{\"LATEST_DATASETTE_SECRET\": \"${{ secrets.LATEST_DATASETTE_SECRET }}\"}", "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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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}