diff --git a/.woodpecker.yml b/.woodpecker.yml index 6a87a7b..dc25669 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -3,6 +3,13 @@ environment: &environment GAME_LANG: lua steps: + - name: version + image: alpine + commands: + - 'VERSION=$(sed -n "s/^-- version: //p" $GAME_NAME.$GAME_LANG | head -n 1)' + - echo "$VERSION" > .version + - echo "Detected version: $VERSION" + - name: build image: git.teletype.hu/internal/tic80pro:latest environment: @@ -10,13 +17,12 @@ steps: XDG_RUNTIME_DIR: /tmp commands: - apt-get update && apt-get install -y zip - - make build - - make export - - 'VERSION=$(sed -n "s/^-- version: //p" $GAME_NAME.$GAME_LANG | head -n 1)' - - 'echo "VERSION (build step): $VERSION"' - - 'zip -r $GAME_NAME.html.zip "$VERSION"' - - ls -al - - echo $VERSION > .version + - VERSION=$(cat .version) + - echo "Building version $VERSION" + - make build VERSION="$VERSION" + - make export VERSION="$VERSION" + - echo "Generated files:" + - ls -lh $GAME_NAME-*.* $GAME_NAME.tic $GAME_NAME.html.zip - name: artifact image: alpine @@ -32,11 +38,13 @@ steps: - apk add --no-cache openssh-client sshpass - mkdir -p /root/.ssh - 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 $DROPAREA_USER@$DROPAREA_HOST "mkdir -p $DROPAREA_TARGET_PATH/$GAME_NAME/$VERSION" - - ls -al - - 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/ + - 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 @@ -48,4 +56,5 @@ steps: commands: - apk add --no-cache curl - 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 a3f9f7d..96c24ce 100644 --- a/Makefile +++ b/Makefile @@ -14,17 +14,40 @@ SRC = $(shell sed 's|^|$(SRC_DIR)/|' $(ORDER)) ASSETS_LUA = inc/meta/meta.assets.lua +# VERSION lehet környezeti változó vagy extract-eljük a lua fájlból +VERSION ?= $(shell sed -n "s/^-- version: //p" $(OUTPUT) | head -n 1) + all: build build: $(OUTPUT) $(OUTPUT): $(SRC) $(ORDER) - @rm -f $(OUTPUT) - @while read f; do \ + @rm -f $(OUTPUT) + @while read f; do \ cat "$(SRC_DIR)/$$f" >> $(OUTPUT); \ 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" + @cp $(PROJECT)-$(VERSION).tic $(PROJECT).tic + @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,15 +68,8 @@ export_assets: build /^-- /,/^-- <\/MUSIC>/p' \ $(OUTPUT) > $(ASSETS_LUA) -export: build - @{ \ - VERSION=$$(sed -n 's/^-- version: //p' $(OUTPUT) | head -n 1); \ - echo "==> Exporting HTML for version $$VERSION"; \ - mkdir -p "$$VERSION"; \ - tic80 --cli --skip --fs=. \ - --cmd="load $(OUTPUT) & save $(PROJECT) & export html $$VERSION/$(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