💻 ci: add semantic release config file #216
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: Deploy Play Set Online to Github Pages | |
on: | |
pull_request: | |
branches: | |
- main | |
permissions: | |
contents: write | |
pages: write | |
id-token: write | |
concurrency: | |
group: 'pages' | |
cancel-in-progress: false | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '22.9' | |
cache: 'npm' | |
- name: Install dependencies | |
run: npm ci | |
- name: Run tests | |
env: | |
MIKRO_ORM_CLI: apps/api/src/shared/module/config/mikro-orm.config.ts | |
MIKRO_ORM_CLI_TS_CONFIG_PATH: apps/api/tsconfig.app.json | |
MIKRO_ORM_CLI_USE_TS_NODE: true | |
run: node --run test | |
build: | |
runs-on: ubuntu-latest | |
needs: tests | |
steps: | |
- name: Setup Pages | |
id: pages | |
uses: actions/configure-pages@v4 | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '22.9' | |
cache: 'npm' | |
- name: Install dependencies | |
run: npm ci | |
- name: Build application | |
run: node --run build:app -- --base-href ${{ steps.pages.outputs.base_url }}/ | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: './dist/apps/app/browser' | |
release: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '22.9' | |
cache: 'npm' | |
- name: Install dependencies | |
run: npm ci | |
- name: Import GPG key | |
env: | |
GPG_PRIVATE_KEY: ${{ secrets.SEMANTIC_RELEASE_GPG_PRIVATE_KEY }} | |
run: | | |
echo "$GPG_PRIVATE_KEY" > private.key | |
gpg --batch --import private.key | |
git config --global user.name "drackp2m-semantic-release-bot" | |
git config --global user.email "[email protected]" | |
git config --global commit.gpgSign true | |
git config --global user.signingkey 89AE9225AE159D89 | |
echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf | |
echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf | |
gpgconf --kill gpg-agent | |
- name: Run semantic-release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: node --run release | |
deploy: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |