Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d43606446 | ||
|
|
5ca1ecfce6 | ||
|
|
86ac925b19 |
@@ -1,7 +1,7 @@
|
||||
name: Dev images
|
||||
|
||||
# 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:
|
||||
push:
|
||||
@@ -22,5 +22,4 @@ jobs:
|
||||
with:
|
||||
push: true
|
||||
tag_mode: dev
|
||||
publish_dockerhub: false
|
||||
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-worker`
|
||||
- `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 subprocess
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlsplit
|
||||
|
||||
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")
|
||||
|
||||
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 "backend python backend/scripts/import_legacy.py" in script
|
||||
assert "Optional source Remnashop .env path" in script
|
||||
|
||||
Reference in New Issue
Block a user