Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d43606446 | ||
|
|
5ca1ecfce6 | ||
|
|
86ac925b19 |
@@ -1,7 +1,7 @@
|
|||||||
name: Dev images
|
name: Dev images
|
||||||
|
|
||||||
# On every push to the dev branch, build all three images and push them to
|
# On every push to the dev branch, build all three images and push them to
|
||||||
# GHCR tagged `dev`. Docker Hub dev images are published by GitLab CI.
|
# GHCR and Docker Hub tagged `dev`.
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -22,5 +22,4 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
push: true
|
push: true
|
||||||
tag_mode: dev
|
tag_mode: dev
|
||||||
publish_dockerhub: false
|
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|||||||
@@ -1,72 +0,0 @@
|
|||||||
stages:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
workflow:
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH == "dev"'
|
|
||||||
- when: never
|
|
||||||
|
|
||||||
variables:
|
|
||||||
DOCKER_BUILDKIT: "1"
|
|
||||||
DOCKER_DRIVER: overlay2
|
|
||||||
DOCKER_HOST: tcp://docker:2375
|
|
||||||
DOCKER_TLS_CERTDIR: ""
|
|
||||||
GIT_DEPTH: "0"
|
|
||||||
|
|
||||||
docker-dev:
|
|
||||||
stage: docker
|
|
||||||
image: docker:27.5.1
|
|
||||||
services:
|
|
||||||
- name: docker:27.5.1-dind
|
|
||||||
alias: docker
|
|
||||||
interruptible: true
|
|
||||||
parallel:
|
|
||||||
matrix:
|
|
||||||
- TARGET: backend
|
|
||||||
IMAGE: remnawave-minishop-backend
|
|
||||||
- TARGET: worker
|
|
||||||
IMAGE: remnawave-minishop-worker
|
|
||||||
- TARGET: frontend
|
|
||||||
IMAGE: remnawave-minishop-frontend
|
|
||||||
before_script:
|
|
||||||
- apk add --no-cache git
|
|
||||||
- test -n "$DOCKERHUB_USERNAME"
|
|
||||||
- test -n "$DOCKERHUB_TOKEN"
|
|
||||||
- echo "$DOCKERHUB_TOKEN" | docker login --username "$DOCKERHUB_USERNAME" --password-stdin
|
|
||||||
- docker buildx create --name gitlab-builder --driver docker-container --use
|
|
||||||
- docker buildx inspect --bootstrap
|
|
||||||
script:
|
|
||||||
- git fetch origin dev --tags
|
|
||||||
- |
|
|
||||||
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/dev)" ]; then
|
|
||||||
echo "A newer dev commit exists; skipping Docker Hub build for $IMAGE."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
- |
|
|
||||||
provenance="${REMNAWAVE_MINISHOP_BUILD_PROVENANCE:-}"
|
|
||||||
if [ -z "$provenance" ]; then
|
|
||||||
dockerhub_owner="$(printf '%s' "${DOCKERHUB_USERNAME:-}" | tr '[:upper:]' '[:lower:]')"
|
|
||||||
if [ "${CI_PROJECT_PATH:-}" = "3252a8/remnawave-minishop" ] || [ "$dockerhub_owner" = "3252a8" ]; then
|
|
||||||
provenance="official"
|
|
||||||
else
|
|
||||||
provenance="custom"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
docker buildx build \
|
|
||||||
--load \
|
|
||||||
--platform linux/amd64 \
|
|
||||||
--file deploy/docker/Dockerfile \
|
|
||||||
--target "$TARGET" \
|
|
||||||
--build-arg "CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME" \
|
|
||||||
--build-arg "REMNAWAVE_MINISHOP_BUILD_PROVENANCE=$provenance" \
|
|
||||||
--build-arg "BUILDKIT_INLINE_CACHE=1" \
|
|
||||||
--cache-from "type=registry,ref=$DOCKERHUB_USERNAME/$IMAGE:dev" \
|
|
||||||
--tag "$DOCKERHUB_USERNAME/$IMAGE:dev" \
|
|
||||||
.
|
|
||||||
- git fetch origin dev --tags
|
|
||||||
- |
|
|
||||||
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/dev)" ]; then
|
|
||||||
echo "A newer dev commit exists; skipping Docker Hub push for $IMAGE."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
- docker push "$DOCKERHUB_USERNAME/$IMAGE:dev"
|
|
||||||
@@ -139,15 +139,3 @@ IMAGE_TAG=3.1.0 docker compose up -d
|
|||||||
- `docker.io/3252a8/remnawave-minishop-backend`
|
- `docker.io/3252a8/remnawave-minishop-backend`
|
||||||
- `docker.io/3252a8/remnawave-minishop-worker`
|
- `docker.io/3252a8/remnawave-minishop-worker`
|
||||||
- `docker.io/3252a8/remnawave-minishop-frontend`
|
- `docker.io/3252a8/remnawave-minishop-frontend`
|
||||||
|
|
||||||
Сборка и публикация сразу в GHCR и Docker Hub:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker login ghcr.io
|
|
||||||
docker login docker.io
|
|
||||||
IMAGE_TAG=v3.4.3 bash scripts/docker-build-push-images.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Поддержать проект
|
|
||||||
|
|
||||||
- Crypto: `USDT/Other ERC-20 0xeD506D44aae634fEc0E01C8835744fBedb7B2a44 (Ethereum/Polygon/Gnosis)`
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import re
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from urllib.parse import urlsplit
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@@ -33,7 +35,9 @@ def test_shell_installer_downloads_raw_files_and_runs_import_in_container():
|
|||||||
script = INSTALL_SCRIPT.read_text(encoding="utf-8")
|
script = INSTALL_SCRIPT.read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert script.startswith("#!/bin/sh")
|
assert script.startswith("#!/bin/sh")
|
||||||
assert "raw.githubusercontent.com" in script
|
raw_url_template = re.search(r"printf '(https://[^']+)' \"\$repo\"", script)
|
||||||
|
assert raw_url_template is not None
|
||||||
|
assert urlsplit(raw_url_template.group(1)).hostname == "raw.githubusercontent.com"
|
||||||
assert "git clone" not in script
|
assert "git clone" not in script
|
||||||
assert "backend python backend/scripts/import_legacy.py" in script
|
assert "backend python backend/scripts/import_legacy.py" in script
|
||||||
assert "Optional source Remnashop .env path" in script
|
assert "Optional source Remnashop .env path" in script
|
||||||
|
|||||||
Reference in New Issue
Block a user