From 2e7922f4a30cdec472344fa608de140ba8845a1d Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 17:13:56 +0300 Subject: [PATCH 01/21] simple CI/CD pipeline was added --- .github/workflows/ci-cd.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/workflows/ci-cd.yml diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml new file mode 100644 index 0000000..23b6d32 --- /dev/null +++ b/.github/workflows/ci-cd.yml @@ -0,0 +1,9 @@ +name: CI/CD Pipeline + +on: + pull_request: + branches: [ main ] + types: [ opened, synchronize ] + +permissions: + contents: write \ No newline at end of file From 824ff6c33f16e672af01750e2ee6c5a8a54866f2 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 17:26:59 +0300 Subject: [PATCH 02/21] github's template was applied --- .github/workflows/ci-cd.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 23b6d32..bc2b9fd 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -1,9 +1,22 @@ name: CI/CD Pipeline on: + push: + branches: [ "master" ] pull_request: - branches: [ main ] - types: [ opened, synchronize ] + branches: [ "master" ] -permissions: - contents: write \ No newline at end of file +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose \ No newline at end of file From 8d2aaa7196b2f324f7a1366db5d8817783e6eb71 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 17:32:44 +0300 Subject: [PATCH 03/21] new types: [ opened, synchronize ] were added --- .github/workflows/ci-cd.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index bc2b9fd..d602dc5 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -3,8 +3,10 @@ name: CI/CD Pipeline on: push: branches: [ "master" ] + pull_request: branches: [ "master" ] + types: [ opened, synchronize ] env: CARGO_TERM_COLOR: always From f59cabb5d19da59761e8688d0fd705dd6fa13e9e Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 17:37:40 +0300 Subject: [PATCH 04/21] type 'edited' was added in push rules --- .github/workflows/ci-cd.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index d602dc5..fde7816 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -3,6 +3,7 @@ name: CI/CD Pipeline on: push: branches: [ "master" ] + types: [ edited ] pull_request: branches: [ "master" ] From 8c1721bdab582bf0dc6e2f7e670fd6430a29d448 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 17:41:37 +0300 Subject: [PATCH 05/21] CI file was renamed --- .github/workflows/{ci-cd.yml => ci.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{ci-cd.yml => ci.yml} (100%) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci.yml similarity index 100% rename from .github/workflows/ci-cd.yml rename to .github/workflows/ci.yml From 51a46eef202547e7fd72017dc4930879e81f2eef Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 17:54:45 +0300 Subject: [PATCH 06/21] 'test' action was deleted --- .github/workflows/ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fde7816..bfdf8f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,4 @@ jobs: steps: - uses: actions/checkout@v4 - name: Build - run: cargo build --verbose - - name: Run tests - run: cargo test --verbose \ No newline at end of file + run: cargo build --verbose \ No newline at end of file From e01a239bcec26becc2979ff59d85cea8fbee1c8b Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 18:02:16 +0300 Subject: [PATCH 07/21] pipeline's name was changed --- .github/workflows/ci.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bfdf8f5..7eedd93 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI/CD Pipeline +name: Rust CI/CD Pipeline on: push: @@ -20,4 +20,20 @@ jobs: steps: - uses: actions/checkout@v4 - name: Build - run: cargo build --verbose \ No newline at end of file + run: cargo build --verbose + + release: + needs: build + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # provided automatically by GitHub + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: { name: dist } + - id: create_release + uses: elgohr/Github-Release-Action@v5 + with: + title: Dev Build ${{ github.sha }} + tag: dev-${{ github.sha }} + prerelease: true \ No newline at end of file From c601eba75f7ca2d094817d43f920d78beef8dd79 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 18:53:35 +0300 Subject: [PATCH 08/21] different OS were added in build step --- .github/workflows/ci.yml | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7eedd93..fa48658 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,26 +14,13 @@ env: jobs: build: - - runs-on: ubuntu-latest - + strategy: + matrix: + os: [ ubuntu-latest, macos-13, macos-14, windows-latest ] + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 - - name: Build - run: cargo build --verbose + - name: Checkout + uses: actions/checkout@v4 - release: - needs: build - runs-on: ubuntu-latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # provided automatically by GitHub - steps: - - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 - with: { name: dist } - - id: create_release - uses: elgohr/Github-Release-Action@v5 - with: - title: Dev Build ${{ github.sha }} - tag: dev-${{ github.sha }} - prerelease: true \ No newline at end of file + - name: Build + run: cargo build --verbose \ No newline at end of file From 352d79ac26370e56343b586ffb97d5cc451fd413 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 19:10:46 +0300 Subject: [PATCH 09/21] macos-13 was deleted from os list --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa48658..b649e57 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: build: strategy: matrix: - os: [ ubuntu-latest, macos-13, macos-14, windows-latest ] + os: [ ubuntu-latest, macos-14, windows-latest ] runs-on: ${{ matrix.os }} steps: - name: Checkout From f263b26ddffb3b21bc7dd3247e2730de456a67d9 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 19:12:51 +0300 Subject: [PATCH 10/21] 'release' flag was added in cargo --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b649e57..ad12da9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,4 +23,4 @@ jobs: uses: actions/checkout@v4 - name: Build - run: cargo build --verbose \ No newline at end of file + run: cargo build --release --verbose \ No newline at end of file From 76b9b3d6838beaa666ed6aad7069da5034fbc68d Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 19:34:33 +0300 Subject: [PATCH 11/21] release asset was created --- .github/workflows/ci.yml | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad12da9..7bf129d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,4 +23,42 @@ jobs: uses: actions/checkout@v4 - name: Build - run: cargo build --release --verbose \ No newline at end of file + run: cargo build --release --verbose + + - name: Copy release binary to root + shell: bash + run: | + pwd + if [[ -f "target/release/singen" ]]; then + cp target/release/singen . + elif [[ -f "target/release/singen.exe" ]]; then + cp target/release/singen . + else + echo "No binary to copy for this OS." + fi + + - name: Compress tar.gz + uses: ksm2/archive-action@v1 + with: + name: "${{ env.FILENAME }}" + format: "tar.gz" + include: "{singen,singen.exe,README.md}" + + - name: Compress zip + uses: ksm2/archive-action@v1 + with: + name: "${{ env.FILENAME }}" + format: "zip" + include: "{rapidrecast,rapidrecast.exe,README.md,LICENSE}" + + - name: Create or Update Release + env: + VERSION: ${{ needs.prepare-release.outputs.rr_cargo_version }} + WORKFLOW_GIT_TAG: ${{ needs.prepare-release.outputs.workflow_git_tag}} + uses: ncipollo/release-action@v1 + with: + artifacts: "${{ env.FILENAME }}.tar.gz,${{ env.FILENAME }}.zip" + allowUpdates: 'true' + generateReleaseNotes: 'true' + token: ${{ secrets.RELEASE_TOKEN }} + tag: ${{ env.WORKFLOW_GIT_TAG }} \ No newline at end of file From 2a32101cf51257f8fb796d75290e1c52ed1542cf Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 19:38:35 +0300 Subject: [PATCH 12/21] build info was supplied --- .github/workflows/ci.yml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7bf129d..ad002a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,13 +30,32 @@ jobs: run: | pwd if [[ -f "target/release/singen" ]]; then - cp target/release/singen . + cp -v target/release/singen . elif [[ -f "target/release/singen.exe" ]]; then - cp target/release/singen . + cp -v target/release/singen . else echo "No binary to copy for this OS." fi + - name: Get Build Info + id: build-info + shell: bash + run: | + OS=$(uname -s | tr '[:upper:]' '[:lower:]') + ARCH=$(uname -m) + TARGET="" + case "$OS" in + linux) TARGET="$ARCH-unknown-linux-gnu" ;; + darwin) TARGET="$ARCH-apple-darwin" ;; + msys*|cygwin*|mingw*) TARGET="$ARCH-pc-windows-msvc" ;; + esac + VERSION=$(grep '^version = ' Cargo.toml | sed -E 's/version = "(.*)"/\1/') + FILENAME="singen-v${VERSION}-${TARGET}" + echo "OS=$OS" >> "$GITHUB_ENV" + echo "ARCH=$ARCH" >> "$GITHUB_ENV" + echo "TARGET=$TARGET" >> "$GITHUB_ENV" + echo "FILENAME=$FILENAME" >> "$GITHUB_ENV" + - name: Compress tar.gz uses: ksm2/archive-action@v1 with: @@ -49,7 +68,7 @@ jobs: with: name: "${{ env.FILENAME }}" format: "zip" - include: "{rapidrecast,rapidrecast.exe,README.md,LICENSE}" + include: "{singen,singen.exe,README.md,LICENSE}" - name: Create or Update Release env: From 783cc5d6fa388676e7ae778902cea25094683e5a Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 19:53:49 +0300 Subject: [PATCH 13/21] release token was added --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad002a9..cc7eec2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,5 +79,5 @@ jobs: artifacts: "${{ env.FILENAME }}.tar.gz,${{ env.FILENAME }}.zip" allowUpdates: 'true' generateReleaseNotes: 'true' - token: ${{ secrets.RELEASE_TOKEN }} + token: ${{ secrets.RELEASE_TOKEN_PAT }} tag: ${{ env.WORKFLOW_GIT_TAG }} \ No newline at end of file From a8856812a7451f8c90346419bb148daca5038dd0 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 20:10:28 +0300 Subject: [PATCH 14/21] test token --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cc7eec2..89935cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,10 +74,11 @@ jobs: env: VERSION: ${{ needs.prepare-release.outputs.rr_cargo_version }} WORKFLOW_GIT_TAG: ${{ needs.prepare-release.outputs.workflow_git_tag}} + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN_PAT }} uses: ncipollo/release-action@v1 with: artifacts: "${{ env.FILENAME }}.tar.gz,${{ env.FILENAME }}.zip" allowUpdates: 'true' generateReleaseNotes: 'true' - token: ${{ secrets.RELEASE_TOKEN_PAT }} + token: ${{ env.GITHUB_TOKEN }} tag: ${{ env.WORKFLOW_GIT_TAG }} \ No newline at end of file From 6a983e40a33b7984b30b0e02420d92a5e81be503 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 20:22:12 +0300 Subject: [PATCH 15/21] Revert "test token" This reverts commit a8856812a7451f8c90346419bb148daca5038dd0. --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89935cb..cc7eec2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,11 +74,10 @@ jobs: env: VERSION: ${{ needs.prepare-release.outputs.rr_cargo_version }} WORKFLOW_GIT_TAG: ${{ needs.prepare-release.outputs.workflow_git_tag}} - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN_PAT }} uses: ncipollo/release-action@v1 with: artifacts: "${{ env.FILENAME }}.tar.gz,${{ env.FILENAME }}.zip" allowUpdates: 'true' generateReleaseNotes: 'true' - token: ${{ env.GITHUB_TOKEN }} + token: ${{ secrets.RELEASE_TOKEN_PAT }} tag: ${{ env.WORKFLOW_GIT_TAG }} \ No newline at end of file From 3725bf10981a9f8126da3f6d8cfd8892c3801d9d Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 20:23:35 +0300 Subject: [PATCH 16/21] use secret from github --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cc7eec2..ad002a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,5 +79,5 @@ jobs: artifacts: "${{ env.FILENAME }}.tar.gz,${{ env.FILENAME }}.zip" allowUpdates: 'true' generateReleaseNotes: 'true' - token: ${{ secrets.RELEASE_TOKEN_PAT }} + token: ${{ secrets.RELEASE_TOKEN }} tag: ${{ env.WORKFLOW_GIT_TAG }} \ No newline at end of file From 9fb908173df3fffeefdcd088df2c1b1b1be08cc8 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 20:46:39 +0300 Subject: [PATCH 17/21] 'tag' variable was supplied --- .github/workflows/ci.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad002a9..54f26ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,20 @@ env: CARGO_TERM_COLOR: always jobs: + get-info: + runs-on: ubuntu-latest + outputs: + cargo_version: ${{ steps.get-version.outputs.VERSION }} + workflow_git_tag: ${{ steps.get-version.outputs.WORKFLOW_GIT_TAG }} + steps: + - name: Get Version from Cargo.toml + id: get-version + run: | + VERSION=$(grep '^version = ' Cargo.toml | sed -E 's/version = "(.*)"/\1/') + echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT" + echo "WORKFLOW_GIT_TAG=v$VERSION" >> "$GITHUB_OUTPUT" build: + needs: get-info strategy: matrix: os: [ ubuntu-latest, macos-14, windows-latest ] @@ -72,8 +85,8 @@ jobs: - name: Create or Update Release env: - VERSION: ${{ needs.prepare-release.outputs.rr_cargo_version }} - WORKFLOW_GIT_TAG: ${{ needs.prepare-release.outputs.workflow_git_tag}} + VERSION: ${{ needs.get-info.outputs.cargo_version }} + WORKFLOW_GIT_TAG: ${{ needs.get-info.outputs.workflow_git_tag}} uses: ncipollo/release-action@v1 with: artifacts: "${{ env.FILENAME }}.tar.gz,${{ env.FILENAME }}.zip" From f8ae5f7b991872520ac35805683c8c69f7ab186d Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 20:55:15 +0300 Subject: [PATCH 18/21] debug output was added --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54f26ca..f57e696 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,6 +22,8 @@ jobs: - name: Get Version from Cargo.toml id: get-version run: | + echo "PATH:$(pwd)" + ls -lah VERSION=$(grep '^version = ' Cargo.toml | sed -E 's/version = "(.*)"/\1/') echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT" echo "WORKFLOW_GIT_TAG=v$VERSION" >> "$GITHUB_OUTPUT" From ecb7f495a1d43545f3e96ff7cfed875623c88d88 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 20:58:24 +0300 Subject: [PATCH 19/21] checkout was added in 'get-info' --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f57e696..47564d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,11 @@ jobs: cargo_version: ${{ steps.get-version.outputs.VERSION }} workflow_git_tag: ${{ steps.get-version.outputs.WORKFLOW_GIT_TAG }} steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.RELEASE_TOKEN }} + - name: Get Version from Cargo.toml id: get-version run: | From 16f6a8d7313ad73b6d4fd979b6d0a6d49a8fb716 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 21:00:17 +0300 Subject: [PATCH 20/21] Revert "debug output was added" This reverts commit f8ae5f7b991872520ac35805683c8c69f7ab186d. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47564d7..140750d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,8 +27,6 @@ jobs: - name: Get Version from Cargo.toml id: get-version run: | - echo "PATH:$(pwd)" - ls -lah VERSION=$(grep '^version = ' Cargo.toml | sed -E 's/version = "(.*)"/\1/') echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT" echo "WORKFLOW_GIT_TAG=v$VERSION" >> "$GITHUB_OUTPUT" From 38cc3d9e3c23321afe1e6c363bd18f48073e225e Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 16 Feb 2026 21:03:45 +0300 Subject: [PATCH 21/21] version and tag out in console --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 140750d..f6a7595 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,8 @@ jobs: id: get-version run: | VERSION=$(grep '^version = ' Cargo.toml | sed -E 's/version = "(.*)"/\1/') + echo "VERSION=$VERSION" + echo "WORKFLOW_GIT_TAG=v$VERSION" echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT" echo "WORKFLOW_GIT_TAG=v$VERSION" >> "$GITHUB_OUTPUT" build: