Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 27120bbed5 |
10
.env.default
Normal file
10
.env.default
Normal file
@@ -0,0 +1,10 @@
|
||||
PROJECT=tankz
|
||||
SDK_PATH=$HOME/sdk
|
||||
PUBLISH_PATH=$HOME/public/$PROJECT
|
||||
BUILD_PATH=./build
|
||||
TARGET_PATH=./target
|
||||
KEY_STORE=<keystore.jks>
|
||||
KEY_PASS=<passphrase>
|
||||
REPO=https://git.shmyga.ru/api/packages/InfernalGames
|
||||
PUBLISH_USER=<username>
|
||||
PUBLISH_PASSWORD=<passphrase>
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -14,3 +14,4 @@ config.json
|
||||
/log
|
||||
/ansible/*.retry
|
||||
.npmrc
|
||||
.env
|
||||
28
Dockerfile
Normal file
28
Dockerfile
Normal file
@@ -0,0 +1,28 @@
|
||||
FROM ubuntu:noble AS base
|
||||
RUN apt update && apt install -y \
|
||||
nodejs \
|
||||
npm \
|
||||
openjdk-11-jre \
|
||||
protobuf-compiler \
|
||||
jq
|
||||
RUN node -v
|
||||
RUN npm -v
|
||||
|
||||
FROM base AS builder
|
||||
ENV GRADLE_USER_HOME=/sdk/gradle
|
||||
WORKDIR /app
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm ci
|
||||
COPY gulpfile.js protohx.json ./
|
||||
COPY tasks ./tasks
|
||||
COPY config.example.json ./config.example.json
|
||||
RUN --mount=type=secret,id=KEY_STORE \
|
||||
cat /run/secrets/KEY_STORE > ./key.jks
|
||||
RUN --mount=type=secret,id=KEY_PASS,env=KEY_PASS \
|
||||
jq --arg key_pass "$KEY_PASS" \
|
||||
'.SdkDir = "/sdk" | .PublishDir = "/app/publish" | .Key.store = "key.jks" | .Key.pass = $key_pass' \
|
||||
config.example.json > config.json
|
||||
COPY src ./src
|
||||
#COPY dependencies ./dependencies
|
||||
VOLUME ["/sdk", "/app/build", "/app/target", "/app/publish", "/app/src-gen"]
|
||||
CMD ["npx", "gulp", "default"]
|
||||
9
README.md
Normal file
9
README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Tankz
|
||||
|
||||
## Play
|
||||
|
||||
https://shmyga.ru/tankz/html5/index.html
|
||||
|
||||
## Packages
|
||||
|
||||
https://git.shmyga.ru/InfernalGames/-/packages/generic/tankz
|
||||
22
docker-compose.yaml
Normal file
22
docker-compose.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
name: $PROJECT
|
||||
services:
|
||||
builder:
|
||||
container_name: $PROJECT-builder
|
||||
image: infernal-games/$PROJECT-builder
|
||||
build:
|
||||
context: .
|
||||
secrets:
|
||||
- KEY_STORE
|
||||
- KEY_PASS
|
||||
volumes:
|
||||
- ${SDK_PATH}:/sdk
|
||||
- ${BUILD_PATH}:/app/build
|
||||
- ${TARGET_PATH}:/app/target
|
||||
- ${PUBLISH_PATH}:/app/publish
|
||||
- ./src-gen:/app/src-gen
|
||||
|
||||
secrets:
|
||||
KEY_STORE:
|
||||
file: $KEY_STORE
|
||||
KEY_PASS:
|
||||
environment: KEY_PASS
|
||||
19
gulpfile.js
19
gulpfile.js
@@ -23,12 +23,25 @@ exports.clean = function clean() {
|
||||
return gulp.src('target/*', {read: false}).pipe(gulpClean());
|
||||
};
|
||||
|
||||
exports.setup = function setup() {
|
||||
const builder = Project.Builder.new(
|
||||
client.config,
|
||||
Project.Platform.ANDROID,
|
||||
client.buildSystem,
|
||||
);
|
||||
return builder.prepare();
|
||||
};
|
||||
|
||||
exports.generate = function generate() {
|
||||
return new Haxe().haxelib(['run', 'protohx', 'generate', 'protohx.json']).then(({stdout}) => {
|
||||
if (stdout.indexOf('FAIL') > -1) {
|
||||
return exports.setup().then(() =>
|
||||
new Haxe()
|
||||
.haxelib(["run", "protohx", "generate", "protohx.json"])
|
||||
.then(({ stdout }) => {
|
||||
if (stdout.indexOf("FAIL") > -1) {
|
||||
throw stdout;
|
||||
}
|
||||
});
|
||||
}),
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
7
scripts/build
Executable file
7
scripts/build
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
cd "$(dirname $(dirname "$0"))" || exit
|
||||
|
||||
source .env
|
||||
mkdir -p "$SDK_PATH" "$PUBLISH_PATH" "$BUILD_PATH" "$TARGET_PATH" "src-gen"
|
||||
docker compose run --rm --user $(id -u):$(id -g) --build --remove-orphans builder
|
||||
32
scripts/publish
Executable file
32
scripts/publish
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
cd "$(dirname $(dirname "$0"))" || exit
|
||||
source .env
|
||||
|
||||
VERSION=$(grep -m 1 'version' ./package.json | grep -oP '"version"\s*:\s*"\K\d+\.\d+\.\d+')
|
||||
|
||||
curl --user "${PUBLISH_USER}:${PUBLISH_PASSWORD}" -X DELETE \
|
||||
"${REPO}/generic/${PROJECT}/${VERSION}"
|
||||
|
||||
PACKAGES=(
|
||||
"android/${PROJECT}_${VERSION}.apk"
|
||||
"debian/${PROJECT}_${VERSION}_all.deb"
|
||||
"archive/${PROJECT}_${VERSION}_linux.tar.gz"
|
||||
)
|
||||
|
||||
for PACKAGE in "${PACKAGES[@]}"
|
||||
do
|
||||
PACKAGE_NAME=$(basename "$PACKAGE")
|
||||
echo "publish: $PACKAGE"
|
||||
curl --user "${PUBLISH_USER}:${PUBLISH_PASSWORD}" \
|
||||
--upload-file "${PUBLISH_PATH}/${PACKAGE}" \
|
||||
"${REPO}/generic/${PROJECT}/${VERSION}/${PACKAGE_NAME}"
|
||||
|
||||
if [[ "$PACKAGE" == *.deb ]]; then
|
||||
curl --user "${PUBLISH_USER}:${PUBLISH_PASSWORD}" -X DELETE \
|
||||
"${REPO}/debian/pool/noble/main/${PROJECT}/${VERSION}/all"
|
||||
curl --user "${PUBLISH_USER}:${PUBLISH_PASSWORD}" \
|
||||
--upload-file "${PUBLISH_PATH}/${PACKAGE}" \
|
||||
"${REPO}/debian/pool/noble/main/upload"
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user