mirror of
https://github.com/resf/distro-tools.git
synced 2024-11-26 23:16:26 +00:00
Push Apollo containers on push. Temporary solution
This commit is contained in:
parent
6d955c9925
commit
73655b78dc
2
.bazelrc
2
.bazelrc
@ -33,3 +33,5 @@ build:toplevel --config=inmemory
|
|||||||
build:toplevel --experimental_remote_download_outputs=toplevel
|
build:toplevel --experimental_remote_download_outputs=toplevel
|
||||||
|
|
||||||
build --stamp=true
|
build --stamp=true
|
||||||
|
build --workspace_status_command=build/stamp.sh
|
||||||
|
run --workspace_status_command=build/stamp.sh
|
25
.github/workflows/push_containers.yaml
vendored
Normal file
25
.github/workflows/push_containers.yaml
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
name: Push containers
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: bazelbuild/setup-bazelisk@v2
|
||||||
|
- name: Mount bazel cache # Optional
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: "~/.cache/bazel"
|
||||||
|
key: bazel
|
||||||
|
- name: Push containers
|
||||||
|
run: |
|
||||||
|
bazel run //apollo/server:server.push
|
||||||
|
bazel run //apollo/rpmworker:rpmworker.push
|
||||||
|
bazel run //apollo/rhworker:rhworker.push
|
@ -142,6 +142,10 @@ load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps")
|
|||||||
|
|
||||||
container_deps()
|
container_deps()
|
||||||
|
|
||||||
|
load("@io_bazel_rules_docker//python3:image.bzl", _py_image_repos = "repositories")
|
||||||
|
|
||||||
|
_py_image_repos()
|
||||||
|
|
||||||
# esbuild
|
# esbuild
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "aspect_rules_esbuild",
|
name = "aspect_rules_esbuild",
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
load("@aspect_rules_py//py:defs.bzl", "py_binary", "py_library")
|
load("@aspect_rules_py//py:defs.bzl", "py_library")
|
||||||
|
load("//build/macros:pyimage.bzl", "pyimage")
|
||||||
|
|
||||||
py_binary(
|
pyimage(
|
||||||
name = "rhworker",
|
name = "rhworker",
|
||||||
srcs = ["__main__.py"],
|
srcs = ["__main__.py"],
|
||||||
|
image_name = "apollo-rhworker",
|
||||||
imports = ["../.."],
|
imports = ["../.."],
|
||||||
main = "__main__.py",
|
main = "__main__.py",
|
||||||
visibility = ["//:__subpackages__"],
|
visibility = ["//:__subpackages__"],
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
load("@aspect_rules_py//py:defs.bzl", "py_binary", "py_library")
|
load("@aspect_rules_py//py:defs.bzl", "py_library")
|
||||||
|
load("//build/macros:pyimage.bzl", "pyimage")
|
||||||
|
|
||||||
py_library(
|
py_library(
|
||||||
name = "rpmworker_lib",
|
name = "rpmworker_lib",
|
||||||
@ -20,8 +21,9 @@ py_library(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
py_binary(
|
pyimage(
|
||||||
name = "rpmworker",
|
name = "rpmworker",
|
||||||
|
image_name = "apollo-rpmworker",
|
||||||
srcs = ["__main__.py"],
|
srcs = ["__main__.py"],
|
||||||
imports = ["../.."],
|
imports = ["../.."],
|
||||||
main = "__main__.py",
|
main = "__main__.py",
|
||||||
|
@ -42,6 +42,7 @@ py_library(
|
|||||||
|
|
||||||
fastapi_binary(
|
fastapi_binary(
|
||||||
name = "server",
|
name = "server",
|
||||||
|
image_name = "apollo-server",
|
||||||
imports = ["../.."],
|
imports = ["../.."],
|
||||||
path = "apollo.server.server",
|
path = "apollo.server.server",
|
||||||
port = "9999",
|
port = "9999",
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
load("@aspect_rules_py//py:defs.bzl", "py_binary")
|
load("@aspect_rules_py//py:defs.bzl", "py_binary")
|
||||||
|
load("@io_bazel_rules_docker//python3:image.bzl", "py3_image")
|
||||||
|
load("@io_bazel_rules_docker//container:container.bzl", "container_push")
|
||||||
|
|
||||||
def fastapi_binary(name, path, port, deps = [], tags = [], **kwargs):
|
def fastapi_binary(name, image_name, path, port, deps = [], tags = [], **kwargs):
|
||||||
py_binary(
|
py_binary(
|
||||||
name = name,
|
name = name,
|
||||||
srcs = ["@pypi_hypercorn//:rules_python_wheel_entry_point_hypercorn.py"],
|
srcs = ["@pypi_hypercorn//:rules_python_wheel_entry_point_hypercorn.py"],
|
||||||
@ -16,10 +18,11 @@ def fastapi_binary(name, path, port, deps = [], tags = [], **kwargs):
|
|||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
py_binary(
|
py3_image(
|
||||||
name = "{}.prod".format(name),
|
name = "{}.image".format(name),
|
||||||
srcs = ["@pypi_hypercorn//:rules_python_wheel_entry_point_hypercorn.py"],
|
srcs = ["@pypi_hypercorn//:rules_python_wheel_entry_point_hypercorn.py"],
|
||||||
args = ["{}:app".format(path), "--reload", "--bind 127.0.0.1:{}".format(port)],
|
main = "@pypi_hypercorn//:rules_python_wheel_entry_point_hypercorn.py",
|
||||||
|
args = ["{}:app".format(path), "--bind 127.0.0.1:{}".format(port)],
|
||||||
visibility = ["//:__subpackages__"],
|
visibility = ["//:__subpackages__"],
|
||||||
deps = deps + [
|
deps = deps + [
|
||||||
":{}_lib".format(name),
|
":{}_lib".format(name),
|
||||||
@ -30,3 +33,13 @@ def fastapi_binary(name, path, port, deps = [], tags = [], **kwargs):
|
|||||||
],
|
],
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
container_push(
|
||||||
|
name = "{}.push".format(name),
|
||||||
|
format = "Docker",
|
||||||
|
image = ":{}.image".format(name),
|
||||||
|
registry = "ghcr.io",
|
||||||
|
repository = "resf/{}".format(image_name),
|
||||||
|
tag = "{BUILD_TAG}",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
||||||
|
22
build/macros/pyimage.bzl
Normal file
22
build/macros/pyimage.bzl
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
load("@aspect_rules_py//py:defs.bzl", "py_binary")
|
||||||
|
load("@io_bazel_rules_docker//python3:image.bzl", "py3_image")
|
||||||
|
load("@io_bazel_rules_docker//container:container.bzl", "container_push")
|
||||||
|
|
||||||
|
def pyimage(name, image_name, **kwargs):
|
||||||
|
py_binary(
|
||||||
|
name = name,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
py3_image(
|
||||||
|
name = "{}.image".format(name),
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
container_push(
|
||||||
|
name = "{}.push".format(name),
|
||||||
|
format = "Docker",
|
||||||
|
image = ":{}.image".format(name),
|
||||||
|
registry = "ghcr.io",
|
||||||
|
repository = "resf/{}".format(image_name),
|
||||||
|
tag = "{BUILD_TAG}",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
4
build/stamp.sh
Executable file
4
build/stamp.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#/usr/bin/env sh
|
||||||
|
cat<<EOF
|
||||||
|
BUILD_TAG ${GIT_COMMIT:-$(git describe --tags --long --always)}
|
||||||
|
EOF
|
Loading…
Reference in New Issue
Block a user