Build custom container images / build (map[base_image:php:8-fpm-alpine build_args:PHP_VERSION=8
context:php8-pgsql fingerprint_command:{ apk info -v | LC_ALL=C sort; find /usr/local/lib/php/extensions /usr/local/etc/php/conf.d -type f -exec sha256sum {} + | LC_ALL=C sort; }
name:ph… (push) Successful in 39s
Build custom container images / build (map[base_image:postgres:18 build_args:PG_VERSION=18
POSTGIS_VERSION=3
VCHORD_VERSION=0.5.3
context:postgres fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; find /usr/lib/postgresql -type f -exec sha256su… (push) Successful in 53s
Build custom container images / build (map[base_image:python:3 build_args:PYTHON_VERSION=3
context:python-tools fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; pip freeze | LC_ALL=C sort; }
name:python-tools oci_labels:org.opencontainers.ima… (push) Successful in 1m17s
270 lines
3.9 KiB
CSS
270 lines
3.9 KiB
CSS
:root {
|
|
color-scheme: light dark;
|
|
font-family: system-ui, sans-serif;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
}
|
|
|
|
header,
|
|
main {
|
|
max-width: 72rem;
|
|
margin: auto;
|
|
padding: 1rem;
|
|
}
|
|
|
|
header {
|
|
border-bottom: 1px solid color-mix(in srgb, currentColor 20%, transparent);
|
|
font-size: 1.2rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
}
|
|
|
|
.group {
|
|
border: 1px solid color-mix(in srgb, currentColor 20%, transparent);
|
|
border-radius: .5rem;
|
|
margin: 1rem 0;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.group-heading {
|
|
align-items: center;
|
|
display: flex;
|
|
gap: 1rem;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tasks,
|
|
.history {
|
|
list-style: none;
|
|
padding: 0;
|
|
}
|
|
|
|
.tasks li {
|
|
border-top: 1px solid color-mix(in srgb, currentColor 15%, transparent);
|
|
display: grid;
|
|
gap: 1rem;
|
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
padding: .8rem 0;
|
|
}
|
|
|
|
.tasks h3,
|
|
.tasks p {
|
|
margin: .2rem 0;
|
|
}
|
|
|
|
.task-form {
|
|
align-items: end;
|
|
display: grid;
|
|
gap: .75rem;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.task-options {
|
|
display: grid;
|
|
gap: .75rem;
|
|
justify-items: start;
|
|
min-width: 0;
|
|
}
|
|
|
|
.task-input { margin: 0; }
|
|
|
|
.task-input label,
|
|
.task-input fieldset {
|
|
display: block;
|
|
max-width: 100%;
|
|
width: fit-content;
|
|
}
|
|
|
|
.task-input fieldset label {
|
|
display: block;
|
|
}
|
|
|
|
.task-input input,
|
|
.task-input select {
|
|
box-sizing: border-box;
|
|
font: inherit;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.task-input input[type="date"],
|
|
.task-input input[type="datetime-local"],
|
|
.task-input input[type="number"],
|
|
.task-input select {
|
|
field-sizing: content;
|
|
}
|
|
|
|
.task-input input[type="text"],
|
|
.task-input input[type="password"] {
|
|
width: min(15rem, 100%);
|
|
}
|
|
|
|
.task-input fieldset {
|
|
border: 0;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.input-error {
|
|
color: #b00020;
|
|
margin: .2rem 0;
|
|
}
|
|
|
|
.run-summary {
|
|
font-size: .9rem;
|
|
opacity: .75;
|
|
}
|
|
|
|
button {
|
|
cursor: pointer;
|
|
font: inherit;
|
|
padding: .4rem .7rem;
|
|
}
|
|
|
|
.task-action {
|
|
justify-self: end;
|
|
}
|
|
|
|
.split-button {
|
|
display: inline-flex;
|
|
position: relative;
|
|
}
|
|
|
|
.split-button button,
|
|
.task-action > button {
|
|
margin: 0;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.split-primary {
|
|
border-bottom-right-radius: 0;
|
|
border-top-right-radius: 0;
|
|
}
|
|
|
|
.split-menu summary {
|
|
align-items: center;
|
|
border: 1px solid currentColor;
|
|
border-bottom-left-radius: 0;
|
|
border-top-left-radius: 0;
|
|
box-sizing: border-box;
|
|
cursor: pointer;
|
|
display: flex;
|
|
height: 100%;
|
|
justify-content: center;
|
|
list-style: none;
|
|
min-width: 2.25rem;
|
|
}
|
|
|
|
.split-menu summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.split-menu-options {
|
|
background: Canvas;
|
|
border: 1px solid currentColor;
|
|
display: grid;
|
|
gap: .2rem;
|
|
min-width: max-content;
|
|
padding: .25rem;
|
|
position: absolute;
|
|
right: 0;
|
|
top: calc(100% + .25rem);
|
|
z-index: 1;
|
|
}
|
|
|
|
.split-menu:not([open]) .split-menu-options {
|
|
display: none;
|
|
}
|
|
|
|
.split-menu-options button {
|
|
text-align: left;
|
|
width: 100%;
|
|
}
|
|
|
|
.is-waiting .split-menu {
|
|
opacity: .6;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.visually-hidden {
|
|
height: 1px;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
position: absolute;
|
|
width: 1px;
|
|
}
|
|
|
|
button:disabled {
|
|
cursor: wait;
|
|
}
|
|
|
|
.spinner {
|
|
border: .15em solid currentColor;
|
|
border-right-color: transparent;
|
|
border-radius: 50%;
|
|
display: none;
|
|
height: .75em;
|
|
margin-left: .35em;
|
|
vertical-align: -.05em;
|
|
width: .75em;
|
|
}
|
|
|
|
.is-waiting .spinner {
|
|
animation: spin .7s linear infinite;
|
|
display: inline-block;
|
|
}
|
|
|
|
.task-result {
|
|
grid-column: 1 / -1;
|
|
margin: .5rem 0 0;
|
|
}
|
|
|
|
.task-result.succeeded {
|
|
color: #167c3a;
|
|
}
|
|
|
|
.task-result.failed {
|
|
color: #b00020;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
@media (max-width: 58rem) {
|
|
.tasks li {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 42rem) {
|
|
.task-form {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.task-action {
|
|
justify-self: start;
|
|
}
|
|
}
|
|
|
|
dt {
|
|
font-weight: 700;
|
|
}
|
|
|
|
dd {
|
|
margin: 0 0 .5rem;
|
|
}
|
|
|
|
pre {
|
|
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
max-height: 60vh;
|
|
overflow: auto;
|
|
padding: 1rem;
|
|
white-space: pre-wrap;
|
|
}
|