From 4e73ad5dd677ecec57062170b9bf1d2e85d39f6c Mon Sep 17 00:00:00 2001 From: Frowmza <66181451+Frowmza@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:12:34 +0100 Subject: [PATCH] chore: auto release --- .github/actions/bump-manifest.js | 10 ++++ .github/workflows/release.yml | 90 ++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 .github/actions/bump-manifest.js create mode 100644 .github/workflows/release.yml diff --git a/.github/actions/bump-manifest.js b/.github/actions/bump-manifest.js new file mode 100644 index 0000000..c00ea98 --- /dev/null +++ b/.github/actions/bump-manifest.js @@ -0,0 +1,10 @@ +import fs from 'fs'; + +const version = process.env.TGT_RELEASE_VERSION +const newVersion = version.replace('v', '') + +const manifestFile = fs.readFileSync('fxmanifest.lua', {encoding: 'utf8'}) + +const newFileContent = manifestFile.replace(/\bversion\s+(.*)$/gm, `version '${newVersion}'`) + +fs.writeFileSync('fxmanifest.lua', newFileContent) \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..d11a136 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,90 @@ +name: Build and Release + +on: + push: + tags: + - 'v*.*.*' # This triggers the workflow on version tags + +jobs: + create-release: + name: Build and Create Tagged release + runs-on: ubuntu-latest + + steps: + - name: Install archive tools + run: sudo apt install zip + + - name: Checkout source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: ${{ github.event.repository.default_branch }} + + - name: Install pnpm + uses: pnpm/action-setup@v4.0.0 + with: + version: 9 + + - name: Get variables + id: get_vars + run: | + echo '::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)' + echo '::set-output name=DATE::$(date +'%D')' + + - name: Setup node + uses: actions/setup-node@v2 + with: + node-version: 18.x + cache: "pnpm" + cache-dependency-path: "web/pnpm-lock.yaml" + + - name: Install dependencies + run: pnpm i --frozen-lockfile + working-directory: web + + - name: Run build + run: pnpm build + working-directory: web + env: + CI: false + + - name: Bump manifest version + run: node .github/actions/bump-manifest-version.js + env: + TGT_RELEASE_VERSION: ${{ github.ref_name }} + + - name: Push manifest change + uses: EndBug/add-and-commit@v8 + with: + add: fxmanifest.lua + push: true + author_name: Manifest Bumper + author_email: 41898282+github-actions[bot]@users.noreply.github.com + message: "chore: bump manifest version to ${{ github.ref_name }}" + + - name: Update tag ref + uses: EndBug/latest-tag@latest + with: + tag-name: ${{ github.ref_name }} + + - name: Bundle files + run: | + mkdir -p ./temp/bl_ui + mkdir -p ./temp/bl_ui/web + cp ./{server.lua,README.md,LICENSE,fxmanifest.lua,client.lua,init.lua} ./temp/bl_ui + cp -r ./{client} ./temp/bl_ui + cp -r ./web/build ./temp/bl_ui/web/build + cd ./temp && zip -r ../bl_ui.zip ./bl_ui + + - name: Create Release + uses: "marvinpinto/action-automatic-releases@v1.2.1" + id: auto_release + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + title: "${{ env.RELEASE_VERSION }}" + prerelease: false + files: bl_ui.zip + + env: + CI: false + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file