name: Publish dev on: schedule: - cron: '0 */12 * * *' workflow_dispatch: jobs: npm-publish: name: npm publish strategy: fail-fast: false matrix: include: - package: '@discordjs/brokers' folder: 'brokers' - package: '@discordjs/builders' folder: 'builders' - package: '@discordjs/collection' folder: 'collection' - package: '@discordjs/core' folder: 'core' - package: '@discordjs/formatters' folder: 'formatters' - package: 'discord.js' folder: 'discord.js' - package: '@discordjs/next' folder: 'next' - package: '@discordjs/proxy' folder: 'proxy' - package: '@discordjs/rest' folder: 'rest' - package: '@discordjs/util' folder: 'util' - package: '@discordjs/voice' folder: 'voice' - package: '@discordjs/ws' folder: 'ws' runs-on: ubuntu-latest permissions: id-token: write env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ secrets.TURBO_TEAM }} if: github.repository_owner == 'discordjs' steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install Node.js v20 uses: actions/setup-node@v4 with: node-version: 20 registry-url: https://registry.npmjs.org/ - name: Check the current development version id: release-check run: | if [[ $(npm view ${{ matrix.package }}@dev version | grep -e "$(git rev-parse --short HEAD)") ]]; \ then echo "RELEASE=0" >> "$GITHUB_OUTPUT"; \ else echo "RELEASE=1" >> "$GITHUB_OUTPUT"; \ fi - name: Install dependencies if: steps.release-check.outputs.release == '1' uses: ./packages/actions/src/pnpmCache - name: Build dependencies if: steps.release-check.outputs.release == '1' run: pnpm run build - name: Publish package if: steps.release-check.outputs.release == '1' run: | pnpm --filter=${{ matrix.package }} run release --preid "dev.$(date +%s)-$(git rev-parse --short HEAD)" pnpm --filter=${{ matrix.package }} publish --provenance --no-git-checks --tag dev || true env: NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} - name: Deprecate prior development releases if: steps.release-check.outputs.release == '1' run: pnpm exec npm-deprecate --name "*dev*" --message "This version is deprecated. Please use a newer version." --package ${{ matrix.package }} env: NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}