From 1e2960f79318603f5ee5949056650f7cd5d0dff8 Mon Sep 17 00:00:00 2001 From: ZanzyTHEbar Date: Sun, 8 Jan 2023 20:41:31 +0000 Subject: [PATCH] ci(ci-semver): add semver release for binaries --- .github/workflows/build_release_bins.yml | 41 ++++++++++----- .releaserc | 67 ++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 13 deletions(-) create mode 100644 .releaserc diff --git a/.github/workflows/build_release_bins.yml b/.github/workflows/build_release_bins.yml index 1b47f37..d8e762c 100644 --- a/.github/workflows/build_release_bins.yml +++ b/.github/workflows/build_release_bins.yml @@ -2,7 +2,6 @@ name: Build and Release the OpenIris bin files on: push: branches: - - "mdns-autodiscovery" - "master" pull_request: branches: @@ -51,11 +50,11 @@ jobs: working-directory: ./ESP run: | pio run --environment ${{ matrix.target_name }}${{ matrix.target_build_type }} - - name: Archive Version File - uses: actions/upload-artifact@v3 - with: - name: version - path: ./ESP/tools/version.txt + #- name: Archive Version File + # uses: actions/upload-artifact@v3 + # with: + # name: version + # path: ./ESP/tools/version.txt - name: Archive Firmware name File # create an environment variable with the name of the firmware file by catting the firmware_name.txt file run: | @@ -74,11 +73,27 @@ jobs: uses: actions/download-artifact@v2 with: path: release - - name: Release Firmware - uses: ncipollo/release-action@v1 - if: startsWith(github.ref, 'refs/tags/') + - name: Checkout + uses: actions/checkout@v2 with: - artifacts: release/*/*.bin - generateReleaseNotes: true - allowUpdates: true - token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + fetch-depth: 0 + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 18 + - run: npm install -g conventional-changelog-angular + - run: npm install -g semantic-release@v19.0.5 + - run: npm install -g @semantic-release/exec + - run: npm install -g @semantic-release/git + - run: npm install -g @semantic-release/release-notes-generator + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: semantic-release + #uses: ncipollo/release-action@v1 + #if: startsWith(github.ref, 'refs/tags/') + #with: + # artifacts: release/*/*.bin + # generateReleaseNotes: true + # allowUpdates: true + # token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000..d447499 --- /dev/null +++ b/.releaserc @@ -0,0 +1,67 @@ +{ + "branches": [ + "main", + "master" + ], + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "preset": "angular", + "releaseRules": [ + { + "type": "docs", + "release": "patch" + }, + { + "type": "refactor", + "scope": "core-*", + "release": "minor" + }, + { + "type": "feat", + "scope": "feat-*", + "release": "minor" + }, + { + "type": "refactor", + "release": "patch" + }, + { + "type": "ci", + "scope": "ci-*", + "release": "patch" + }, + { + "scope": "no-release", + "release": false + } + ], + "parserOpts": { + "noteKeywords": [ + "BREAKING CHANGE", + "BREAKING CHANGES" + ] + } + } + ], + "@semantic-release/release-notes-generator", + [ + "@semantic-release/exec", + { + "prepareCmd": "sed -i 's/\"version\": \"[0-9\\.]*\",/\"version\": \"${nextRelease.version}\",/g' ./ESP/lib/library.json" + } + ], + "@semantic-release/github", + [ + "@semantic-release/git", + { + "assets": [ + "ESP/lib/library.json", + "ESP/.pio/build/**/*.bin" + ], + "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" + } + ] + ] +} \ No newline at end of file