diff --git a/.github/workflows/shared_library_nuget.yml b/.github/workflows/shared_library_nuget.yml index 109c0d10..ba15ec50 100644 --- a/.github/workflows/shared_library_nuget.yml +++ b/.github/workflows/shared_library_nuget.yml @@ -17,18 +17,75 @@ env: outputDirectory: ${{ github.workspace}}/nuget jobs: + update_revision_number: + runs-on: ubuntu-latest + + outputs: + revision_number: ${{ steps.revision.outputs.revision_number }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Restore cache + id: cache + uses: actions/cache@v4 + with: + path: cache_dir + key: revision-number-nuget + + - name: Get current date + id: date + run: echo "current_date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV + + - name: Check and update revision number + id: revision + run: | + FILENAME=cache_dir/revision_number.txt + DATEFILE=cache_dir/previous_date.txt + + mkdir -p cache_dir + + if [ -f "$DATEFILE" ]; then + prev_date=$(cat "$DATEFILE") + rev_number=$(cat "$FILENAME") + else + prev_date="" + rev_number=0 + fi + + if [ "$current_date" = "$prev_date" ]; then + rev_number=$((rev_number + 1)) + else + rev_number=1 + fi + + echo "New revision number: $rev_number" + echo $rev_number > "$FILENAME" + echo $current_date > "$DATEFILE" + echo "revision_number=$rev_number" >> $GITHUB_OUTPUT + + - name: Save cache + uses: actions/cache@v4 + with: + path: cache_dir + key: revision-number-nuget + make_version: runs-on: ubuntu-latest + needs: [ update_revision_number ] + outputs: build_num: ${{ steps.generate_build_number.outputs.build_num }} + env: + revisionNumber: ${{ needs.update_revision_number.outputs.revision_number }} + steps: - name: Make build number id: generate_build_number run: | - run_number=$(git log --since=$(date +'%Y-%m-%dT00:00:00') --oneline | grep -c 'workflow_run') - run_number=$((run_number + 1)) - build_num=$(date +'%Y.%-m.%-d').$(run_number) + build_num=$(date +'%Y.%-m.%-d').${{ env.revisionNumber }} echo "build_num=$build_num" >> $GITHUB_OUTPUT echo "Build number is $build_num"