diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b006481..4ca725e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,8 @@ jobs: run: printf '%s\n' "$KEYS" > include/keys.inc - name: build shell: msys2 {0} + env: + DATECODE: ${{ github.ref_name }} run: sh build.cmd - uses: actions/upload-artifact@v4 with: @@ -39,6 +41,8 @@ jobs: KEYS: ${{ secrets.KEYS_INC }} run: printf '%s\n' "$KEYS" > include/keys.inc - run: sed 's/\r$//' build.cmd | sh + env: + DATECODE: ${{ github.ref_name }} - uses: actions/upload-artifact@v4 with: name: linux-x64 diff --git a/build.cmd b/build.cmd index d7af4e0..2e33f40 100644 --- a/build.cmd +++ b/build.cmd @@ -5,17 +5,19 @@ goto :WINDOWS #!/bin/sh set -e mkdir -p build -DATESTR=$(date +%Y%m%d) -REV=-1 -TAG_REV=$(git tag -l "${DATESTR}*" 2>/dev/null | sed "s/^${DATESTR}//" | sort -rn | head -1) -[ -n "$TAG_REV" ] && REV=$((10#$TAG_REV)) -if [ -f build/.buildrev ]; then - read LAST_DATE LAST_REV < build/.buildrev - [ "$LAST_DATE" = "$DATESTR" ] && [ "$LAST_REV" -gt "$REV" ] && REV=$LAST_REV +if [ -z "$DATECODE" ]; then + DATESTR=$(date +%Y%m%d) + REV=-1 + TAG_REV=$(git tag -l "${DATESTR}*" 2>/dev/null | sed "s/^${DATESTR}//" | sort -rn | head -1) + [ -n "$TAG_REV" ] && REV=$(expr "$TAG_REV" + 0) + if [ -f build/.buildrev ]; then + read LAST_DATE LAST_REV < build/.buildrev + [ "$LAST_DATE" = "$DATESTR" ] && [ "$LAST_REV" -gt "$REV" ] && REV=$LAST_REV + fi + REV=$((REV + 1)) + DATECODE=$(printf "%s%02d" "$DATESTR" "$REV") + echo "$DATESTR $REV" > build/.buildrev fi -REV=$((REV + 1)) -DATECODE=$(printf "%s%02d" "$DATESTR" "$REV") -echo "$DATESTR $REV" > build/.buildrev SRC="src/lib.c src/main.c src/crypto.c src/keys.c src/exfat.c src/ntfs.c src/stream.c src/aes.c" @@ -75,6 +77,7 @@ for %%L in ( set CFLAGS=-target x86_64-pc-windows-gnu -Oz -maes -msse4.1 -I include -fno-asynchronous-unwind-tables -fno-ident -ffunction-sections -fdata-sections -flto -ffreestanding -fno-builtin -fno-stack-protector -nostdlib -fno-unwind-tables -fno-exceptions -fmerge-all-constants -fno-addrsig set LDFLAGS=-fuse-ld=lld -Wl,--gc-sections -Wl,--icf=all -Wl,-e,_start -Wl,--subsystem,console -Wl,-s -Wl,--lto-Oz %LIBPATH% +if defined DATECODE goto :buildstart for /f %%a in ('wmic os get localdatetime /value ^| find "="') do for /f "tokens=2 delims==" %%b in ("%%a") do set "DT=%%b" set "DATESTR=%DT:~0,8%" set REV=-1