From 351a443c64f1a4169b8fe237611507500835116d Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Sun, 25 Jan 2026 16:19:29 +0100 Subject: [PATCH] pipeline update --- .woodpecker.yml | 38 +++++++++++++++++++++++++++++++------- Makefile | 32 ++++++++++++++++++++++++++------ 2 files changed, 57 insertions(+), 13 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index ee12ebc..c6cf37f 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -3,14 +3,29 @@ environment: &environment GAME_LANG: lua steps: + - name: version + image: alpine + commands: + - 'META_HEADER_PATH=./inc/meta/meta.header.lua + - 'VERSION=$(sed -n "s/^-- version: //p" $META_HEADER_PATH | head -n 1 | tr -d "[:space:]")' + - 'echo VERSION is: $VERSION' + - 'echo $VERSION > .version' + - 'cat .version' + - name: build image: git.teletype.hu/internal/tic80pro:latest environment: <<: *environment XDG_RUNTIME_DIR: /tmp commands: - - make build - - make export + - 'apt-get update && apt-get install -y zip' + - '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 image: alpine @@ -23,9 +38,16 @@ steps: DROPAREA_SSH_PASSWORD: from_secret: droparea_ssh_password commands: - - apk add --no-cache openssh-client sshpass - - mkdir -p /root/.ssh - - 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 + - 'apk add --no-cache openssh-client sshpass' + - 'mkdir -p /root/.ssh' + - '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 image: alpine @@ -35,5 +57,7 @@ steps: UPDATE_SECRET: from_secret: update_secret_key commands: - - apk add --no-cache curl - - curl "$UPDATE_SERVER/update?secret=$UPDATE_SECRET&name=$GAME_NAME&platform=tic80" + - 'apk add --no-cache curl' + - 'export VERSION=$(cat .version)' + - 'echo Triggering update for version $VERSION' + - 'curl $UPDATE_SERVER/update?secret=$UPDATE_SECRET&name=$GAME_NAME&platform=tic80&version=$VERSION' \ No newline at end of file diff --git a/Makefile b/Makefile index 0dc9732..330c5ec 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,28 @@ $(OUTPUT): $(SRC) $(ORDER) echo "" >> $(OUTPUT); \ done < $(ORDER) +export: build + @if [ -z "$(VERSION)" ]; then \ + echo "ERROR: VERSION not set!"; \ + exit 1; \ + fi + @echo "==> Exporting HTML for version $(VERSION)" + @tic80 --cli --skip --fs=. \ + --cmd="load $(OUTPUT) & save $(PROJECT)-$(VERSION) & export html $(PROJECT)-$(VERSION).html & exit" + @echo "==> Creating versioned files" + @if [ -f "$(PROJECT)-$(VERSION).tic" ]; then \ + cp $(PROJECT)-$(VERSION).tic $(PROJECT).tic; \ + fi + @if [ -f "$(PROJECT)-$(VERSION).html.zip" ]; then \ + cp $(PROJECT)-$(VERSION).html.zip $(PROJECT).html.zip; \ + fi + @echo "==> Generated files:" + @ls -lh $(PROJECT)-$(VERSION).* $(PROJECT).tic $(PROJECT).html.zip 2>/dev/null || true + +watch: + make build + fswatch -o $(SRC_DIR) $(ORDER) assets | while read; do make build; done + import_assets: @for t in $(ASSET_TYPES); do \ for f in $(ASSETS_DIR)/$$t/*.png; do \ @@ -45,10 +67,8 @@ export_assets: build /^-- /,/^-- <\/MUSIC>/p' \ $(OUTPUT) > $(ASSETS_LUA) -export: build - tic80 --cli --skip --fs=. \ - --cmd="load $(OUTPUT) & save $(PROJECT) & export html $(PROJECT).html & exit" +clean: + @rm -f $(PROJECT)-*.tic $(PROJECT)-*.html.zip $(OUTPUT) + @echo "==> Cleaned build artifacts" -watch: - make build - fswatch -o $(SRC_DIR) $(ORDER) assets | while read; do make build; done +.PHONY: all build export watch import_assets export_assets clean \ No newline at end of file