feat: add migrate fully config option #43
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow uses actions that are not certified by GitHub. | |
# They are provided by a third-party and are governed by | |
# separate terms of service, privacy policy, and support | |
# documentation. | |
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle | |
name: Parsek Release | |
on: | |
push: | |
branches: [ "alpha", "beta", "main" ] | |
permissions: | |
contents: read | |
jobs: | |
get-next-version: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write # to be able to publish a GitHub release | |
issues: write # to be able to comment on released issues | |
pull-requests: write # to be able to comment on released pull requests | |
id-token: write # to enable use of OIDC for npm provenance | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "lts/*" | |
- name: Dry run to get next release version | |
id: get-next-version | |
run: | | |
export NEXT_TAG_VERSION=$(npx semantic-release --dry-run | grep 'next release version is ' | awk -F"next release version is " '{print $2}') | |
echo "new_tag_version=${NEXT_TAG_VERSION}" >> $GITHUB_OUTPUT | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
- name: Echo new_tag_version | |
run: | | |
echo "Extracted Tag Version: ${{ steps.get-next-version.outputs.new_tag_version }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
outputs: | |
new_tag_version: ${{ steps.get-next-version.outputs.new_tag_version }} | |
build-and-release: | |
runs-on: ubuntu-latest | |
needs: get-next-version | |
if: ${{needs.get-next-version.outputs.new_tag_version != ''}} | |
permissions: | |
contents: write # to be able to publish a GitHub release | |
issues: write # to be able to comment on released issues | |
pull-requests: write # to be able to comment on released pull requests | |
id-token: write # to enable use of OIDC for npm provenance | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Extract branch name | |
shell: bash | |
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
id: extract_branch | |
- name: Get Time | |
id: time | |
uses: nanzm/get-time-action@v1.1 | |
with: | |
timeZone: 8 | |
format: 'YYYYMMDDHHmmss' | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: temurin | |
java-version: 8 | |
- name: Build with Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
arguments: | | |
${{ steps.extract_branch.outputs.branch == 'main' && 'build' || 'buildDev' }} | |
-PbuildType=${{ steps.extract_branch.outputs.branch == 'main' && 'release' || steps.extract_branch.outputs.branch }} | |
-Pversion=${{ needs.get-next-version.outputs.new_tag_version }} | |
-PtimeStamp=${{ steps.time.outputs.time }} | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "lts/*" | |
- name: Release | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
run: npx semantic-release |