This commit is contained in:
@@ -6,11 +6,8 @@ steps:
|
|||||||
- name: version
|
- name: version
|
||||||
image: alpine
|
image: alpine
|
||||||
commands:
|
commands:
|
||||||
- 'META_HEADER_PATH=./inc/meta/meta.header.lua
|
- 'apk add --no-cache make'
|
||||||
- 'VERSION=$(sed -n "s/^-- version: //p" $META_HEADER_PATH | head -n 1 | tr -d "[:space:]")'
|
- 'make ci-version'
|
||||||
- 'echo VERSION is: $VERSION'
|
|
||||||
- 'echo $VERSION > .version'
|
|
||||||
- 'cat .version'
|
|
||||||
|
|
||||||
- name: build
|
- name: build
|
||||||
image: git.teletype.hu/internal/tic80pro:latest
|
image: git.teletype.hu/internal/tic80pro:latest
|
||||||
@@ -18,14 +15,7 @@ steps:
|
|||||||
<<: *environment
|
<<: *environment
|
||||||
XDG_RUNTIME_DIR: /tmp
|
XDG_RUNTIME_DIR: /tmp
|
||||||
commands:
|
commands:
|
||||||
- 'apt-get update && apt-get install -y zip'
|
- 'make ci-export'
|
||||||
- 'cat .version'
|
|
||||||
- 'export VERSION=$(cat .version)'
|
|
||||||
- 'echo Building version: $VERSION'
|
|
||||||
- 'make build'
|
|
||||||
- 'make export VERSION=$VERSION'
|
|
||||||
- 'echo Generated files:'
|
|
||||||
- 'ls -lh $GAME_NAME-*.* $GAME_NAME.tic $GAME_NAME.html.zip'
|
|
||||||
|
|
||||||
- name: artifact
|
- name: artifact
|
||||||
image: alpine
|
image: alpine
|
||||||
@@ -38,16 +28,8 @@ steps:
|
|||||||
DROPAREA_SSH_PASSWORD:
|
DROPAREA_SSH_PASSWORD:
|
||||||
from_secret: droparea_ssh_password
|
from_secret: droparea_ssh_password
|
||||||
commands:
|
commands:
|
||||||
- 'apk add --no-cache openssh-client sshpass'
|
- 'apk add --no-cache make openssh-client sshpass'
|
||||||
- 'mkdir -p /root/.ssh'
|
- 'make ci-upload'
|
||||||
- 'export VERSION=$(cat .version)'
|
|
||||||
- 'echo VERSION artifact step: $VERSION'
|
|
||||||
- 'echo SCP Target Path: $DROPAREA_TARGET_PATH/$GAME_NAME/$VERSION/'
|
|
||||||
- 'sshpass -p $DROPAREA_SSH_PASSWORD ssh -p $DROPAREA_PORT -o StrictHostKeyChecking=no $DROPAREA_USER@$DROPAREA_HOST mkdir -p $DROPAREA_TARGET_PATH/$GAME_NAME/$VERSION'
|
|
||||||
- 'echo Files to upload:'
|
|
||||||
- 'ls -lh $GAME_NAME-$VERSION.* $GAME_NAME.tic $GAME_NAME.html.zip'
|
|
||||||
- 'sshpass -p $DROPAREA_SSH_PASSWORD scp -o StrictHostKeyChecking=no -P $DROPAREA_PORT $GAME_NAME-$VERSION.tic $GAME_NAME-$VERSION.html.zip $DROPAREA_USER@$DROPAREA_HOST:$DROPAREA_TARGET_PATH/$GAME_NAME/$VERSION/'
|
|
||||||
- 'sshpass -p $DROPAREA_SSH_PASSWORD scp -o StrictHostKeyChecking=no -P $DROPAREA_PORT $GAME_NAME.$GAME_LANG $GAME_NAME.tic $GAME_NAME.html.zip $DROPAREA_USER@$DROPAREA_HOST:$DROPAREA_TARGET_PATH/$GAME_NAME/$VERSION/'
|
|
||||||
|
|
||||||
- name: update
|
- name: update
|
||||||
image: alpine
|
image: alpine
|
||||||
@@ -57,7 +39,5 @@ steps:
|
|||||||
UPDATE_SECRET:
|
UPDATE_SECRET:
|
||||||
from_secret: update_secret_key
|
from_secret: update_secret_key
|
||||||
commands:
|
commands:
|
||||||
- 'apk add --no-cache curl'
|
- 'apk add --no-cache make curl'
|
||||||
- 'export VERSION=$(cat .version)'
|
- 'make ci-update'
|
||||||
- 'echo Triggering update for version $VERSION'
|
|
||||||
- 'curl $UPDATE_SERVER/update?secret=$UPDATE_SECRET&name=$GAME_NAME&platform=tic80&version=$VERSION'
|
|
||||||
38
Makefile
38
Makefile
@@ -14,6 +14,15 @@ SRC = $(shell sed 's|^|$(SRC_DIR)/|' $(ORDER))
|
|||||||
|
|
||||||
ASSETS_LUA = inc/meta/meta.assets.lua
|
ASSETS_LUA = inc/meta/meta.assets.lua
|
||||||
|
|
||||||
|
# CI/CD variables
|
||||||
|
VERSION_FILE = .version
|
||||||
|
GAME_LANG ?= lua
|
||||||
|
DROPAREA_HOST ?= vps.teletype.hu
|
||||||
|
DROPAREA_PORT ?= 2223
|
||||||
|
DROPAREA_TARGET_PATH ?= /home/drop
|
||||||
|
DROPAREA_USER ?= drop
|
||||||
|
UPDATE_SERVER ?= https://games.vps.teletype.hu
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
build: $(OUTPUT)
|
build: $(OUTPUT)
|
||||||
@@ -71,4 +80,31 @@ clean:
|
|||||||
@rm -f $(PROJECT)-*.tic $(PROJECT)-*.html.zip $(OUTPUT)
|
@rm -f $(PROJECT)-*.tic $(PROJECT)-*.html.zip $(OUTPUT)
|
||||||
@echo "==> Cleaned build artifacts"
|
@echo "==> Cleaned build artifacts"
|
||||||
|
|
||||||
.PHONY: all build export watch import_assets export_assets clean
|
# CI/CD Targets
|
||||||
|
ci-version:
|
||||||
|
@echo "==> Extracting version"
|
||||||
|
@VERSION=$$(sed -n "s/^-- version: //p" inc/meta/meta.header.lua | head -n 1 | tr -d "[:space:]"); \
|
||||||
|
echo "VERSION is: $$VERSION"; \
|
||||||
|
echo $$VERSION > $(VERSION_FILE)
|
||||||
|
|
||||||
|
ci-export:
|
||||||
|
@VERSION=$$(cat $(VERSION_FILE)); \
|
||||||
|
echo "==> Building and exporting version $$VERSION"; \
|
||||||
|
$(MAKE) export VERSION=$$VERSION
|
||||||
|
|
||||||
|
ci-upload:
|
||||||
|
@VERSION=$$(cat $(VERSION_FILE)); \
|
||||||
|
echo "==> Uploading artifacts for version $$VERSION"; \
|
||||||
|
echo "SCP Target Path: $(DROPAREA_TARGET_PATH)/$(PROJECT)/$$VERSION/"; \
|
||||||
|
sshpass -p "$(DROPAREA_SSH_PASSWORD)" ssh -p $(DROPAREA_PORT) -o StrictHostKeyChecking=no $(DROPAREA_USER)@$(DROPAREA_HOST) mkdir -p $(DROPAREA_TARGET_PATH)/$(PROJECT)/$$VERSION; \
|
||||||
|
echo "Files to upload:"; \
|
||||||
|
ls -lh $(PROJECT)-$$VERSION.* $(PROJECT).tic $(PROJECT).html.zip 2>/dev/null || true; \
|
||||||
|
sshpass -p "$(DROPAREA_SSH_PASSWORD)" scp -o StrictHostKeyChecking=no -P $(DROPAREA_PORT) $(PROJECT)-$$VERSION.tic $(PROJECT)-$$VERSION.html.zip $(DROPAREA_USER)@$(DROPAREA_HOST):$(DROPAREA_TARGET_PATH)/$(PROJECT)/$$VERSION/; \
|
||||||
|
sshpass -p "$(DROPAREA_SSH_PASSWORD)" scp -o StrictHostKeyChecking=no -P $(DROPAREA_PORT) $(OUTPUT) $(PROJECT).tic $(PROJECT).html.zip $(DROPAREA_USER)@$(DROPAREA_HOST):$(DROPAREA_TARGET_PATH)/$(PROJECT)/$$VERSION/;
|
||||||
|
|
||||||
|
ci-update:
|
||||||
|
@VERSION=$$(cat $(VERSION_FILE)); \
|
||||||
|
echo "==> Triggering update for version $$VERSION"; \
|
||||||
|
curl "$(UPDATE_SERVER)/update?secret=$(UPDATE_SECRET)&name=$(PROJECT)&platform=tic80&version=$$VERSION"
|
||||||
|
|
||||||
|
.PHONY: all build export watch import_assets export_assets clean ci-version ci-export ci-upload ci-update
|
||||||
Reference in New Issue
Block a user