Tagged Release Publisher #130
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
name: Tagged Release Publisher | |
permissions: | |
id-token: write | |
contents: write | |
actions: write | |
deployments: write | |
pull-requests: read | |
on: | |
workflow_dispatch: | |
jobs: | |
create-tagged-release: | |
name: Build and Create Tagged Release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Get tag | |
uses: project-error/[email protected] | |
with: | |
environment: "prod" | |
prerelease: false | |
id: get_tag | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Bump manifest version | |
run: node .github/actions/bump-manifest-version.js | |
env: | |
TGT_RELEASE_VERSION: ${{ steps.get_tag.outputs.release_tag }} | |
- 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 ${{ steps.get_tag.outputs.release_tag }}" | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install pnpm | |
uses: pnpm/[email protected] | |
with: | |
version: 7.29.1 | |
- name: Setup node | |
uses: actions/setup-node@v2 | |
with: | |
node-version: 16.x | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm i --frozen-lockfile | |
- name: Run build | |
run: REACT_APP_VERSION=${{ steps.get_tag.outputs.VERSION_TAG }} pnpm build | |
#- name: Create Sentry Release (NPWD) | |
# run: | | |
# curl -sL https://sentry.io/get-cli/ | bash | |
# export SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} | |
# export SENTRY_ORG=project-error | |
# export SENTRY_PROJECT=npwd | |
# export SENTRY_URL=https://sentry.projecterror.dev/ | |
# export VERSION=${{ steps.get_tag.outputs.VERSION_TAG }} | |
# sentry-cli releases new "$VERSION" | |
# sentry-cli releases set-commits "$VERSION" --auto | |
# sentry-cli releases files "$VERSION" upload-sourcemaps resources/html --ext map --url-prefix '~/resources/html' | |
# sentry-cli releases finalize "$VERSION" | |
# sentry-cli releases deploys "$VERSION" new -e production | |
- name: Bundle built files | |
run: | | |
mkdir -p ./temp/npwd/dist | |
cp ./{LICENSE,README.md,config.json,import.sql,fxmanifest.lua} ./temp/npwd/ | |
cp -r ./dist/{game,html} ./temp/npwd/dist | |
cd ./temp && zip -r ../npwd.zip ./npwd | |
- name: Create Release | |
uses: "project-error/[email protected]" | |
id: auto_release | |
with: | |
environment: "prod" | |
title: NPWD ${{ steps.get_tag.outputs.release_tag }} | |
prerelease: false | |
automatic_release_tag: ${{ steps.get_tag.outputs.release_tag }} | |
files: npwd.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload artifacts | |
run: | | |
curl -L \ | |
-X POST \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
-H "Content-Type: application/octet-stream" \ | |
"https://uploads.github.com/repos/project-error/npwd/releases/${{ steps.auto_release.outputs.release_id }}/assets?name=npwd.zip" \ | |
--data-binary "@npwd.zip" | |
build-npwd-packages: | |
name: Build NPWD packages | |
runs-on: ubuntu-latest | |
needs: create-tagged-release | |
steps: | |
- name: Get tag | |
run: echo ::set-output name=VERSION_TAG::${GITHUB_REF/refs\/tags\//} | |
id: get_tag | |
- name: Checkout source code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.ref }} | |
- name: Install pnpm | |
uses: pnpm/[email protected] | |
with: | |
version: 7.29.1 | |
- name: Setup node | |
uses: actions/setup-node@v2 | |
with: | |
node-version: 16.x | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm i --frozen-lockfile | |
# Build all packages | |
- name: Build @npwd/types | |
run: | | |
pnpm generate:typings | |
cd ./packages/npwd-types | |
git config user.email "[email protected]" | |
git config user.name "itschip" | |
pnpm version --new-version ${{ steps.get_tag.outputs.release_tag }} | |
- name: Release @npwd/types | |
uses: JS-DevTools/npm-publish@v1 | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
package: './packages/npwd-types/package.json' | |
access: 'public' | |
- name: Build @npwd/hooks | |
run: | | |
cd ./packages/npwd-hooks | |
pnpm build | |
git config user.email "[email protected]" | |
git config user.name "itschip" | |
pnpm version --new-version ${{ steps.get_tag.outputs.release_tag }} | |
- name: Release @npwd/hooks | |
uses: JS-DevTools/npm-publish@v1 | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
package: './packages/npwd-hooks/package.json' | |
access: 'public' |