Skip to content

Workflow file for this run

name: "Continuous Integration"
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
main:
runs-on: ubuntu-latest
name: "CI (${{ matrix.name }})"
strategy:
fail-fast: false
matrix:
include:
- script: tsc
name: "TypeScript"
- script: lint
name: "ESLint"
- script: test
name: "Tests"
steps:
- uses: actions/checkout@v4
- name: Install Yarn
run: corepack enable yarn
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 'current'
cache: 'yarn'
cache-dependency-path: yarn.lock
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: yarn install --immutable
- name: Run ${{ matrix.name }}
run: bun run ${{ matrix.script }}
npm-publish:
needs: [main]
if: ${{ github.repository_owner == 'RiskyMH' && github.ref == 'refs/heads/main' }}
name: NPM Publish
permissions:
id-token: write
contents: read
strategy:
fail-fast: false
matrix:
include:
- package: '@riskybot/tools'
folder: 'tools'
- package: '@riskybot/error'
folder: 'command'
- package: '@riskybot/command'
folder: 'command'
- package: '@riskybot/apis'
folder: 'apis'
- package: '@riskybot/image-generate'
folder: 'image-generation'
- package: 'discord-api-parser'
folder: 'discord-api-parser'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Yarn
run: corepack enable yarn
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 'current'
registry-url: https://registry.npmjs.org/
cache: 'yarn'
cache-dependency-path: yarn.lock
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: yarn --immutable
- name: Publish package
run: yarn workspace ${{ matrix.package }} npm publish --tolerate-republish || yarn workspace ${{ matrix.package }} npm publish
env:
YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
NPM_CONFIG_PROVENANCE: true
deploy-commands:
needs: [main]
if: ${{ github.repository_owner == 'RiskyMH' && github.ref == 'refs/heads/main' }}
name: Deploy Commands
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Yarn
run: corepack enable yarn
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 'current'
registry-url: https://registry.npmjs.org/
cache: 'yarn'
cache-dependency-path: yarn.lock
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: yarn --immutable
- name: Deploy
run: bun run deploy-commands
env:
RISKYBOT_APPLICATION_CLIENT_SECRET: ${{ secrets.RISKYBOT_APPLICATION_CLIENT_SECRET }}
RISKYBOT_APPLICATION_ID: ${{ secrets.RISKYBOT_APPLICATION_ID }}
IMGEN_APPLICATION_CLIENT_SECRET: ${{ secrets.IMGEN_APPLICATION_CLIENT_SECRET }}
IMGEN_APPLICATION_ID: ${{ secrets.IMGEN_APPLICATION_ID }}
OWNER_GUILD_ID: ${{ secrets.OWNER_GUILD_ID }}
TOPGG_TOKEN: 'true'
RISKYBOT_APPLICATION_PUBLIC_KEY: 'true'
IMGEN_APPLICATION_PUBLIC_KEY: 'true'