Require explicit package version for builds #242
Workflow file for this run
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| workflow_call: | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| version: ${{ steps.version.outputs.version }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Build Reason | |
| run: "echo ref: ${{github.ref}} event: ${{github.event_name}}" | |
| - name: Build Version | |
| id: version | |
| run: | | |
| dotnet tool install --global minver-cli --version 7.0.0 | |
| version=$(minver --tag-prefix v) | |
| echo "version=$version" >> $GITHUB_OUTPUT | |
| echo "### Version: $version" >> $GITHUB_STEP_SUMMARY | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v2 | |
| with: | |
| deno-version: v2.x | |
| - name: Code Style | |
| run: deno fmt --check | |
| - name: Linting | |
| run: deno lint | |
| - name: Type Check | |
| run: deno task check | |
| deno: | |
| runs-on: ubuntu-24.04 | |
| needs: lint | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v2 | |
| with: | |
| deno-version: v2.x | |
| - name: Tests | |
| run: | | |
| deno test --allow-net --coverage=cov/ src/tests | |
| deno coverage cov/ | |
| - name: Publish Release Package | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| run: deno publish --set-version ${{ needs.lint.outputs.version }} | |
| npm: | |
| runs-on: ubuntu-24.04 | |
| needs: lint | |
| permissions: | |
| contents: read | |
| packages: write | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: denoland/setup-deno@v2 | |
| with: | |
| deno-version: v2.x | |
| - name: Build NPM Package | |
| run: deno task build --set-version ${{ needs.lint.outputs.version }} | |
| - name: Show NPM Package | |
| run: tar -xOf fetchclient.tgz package/package.json | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "24.x" | |
| registry-url: "https://registry.npmjs.org" | |
| scope: "@foundatiofx" | |
| - name: Publish Release Package | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| run: npm publish fetchclient.tgz --provenance --access public | |
| - name: Setup GitHub CI Node.js environment | |
| if: github.event_name != 'pull_request' | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "24.x" | |
| registry-url: "https://npm.pkg.github.com" | |
| scope: "@foundatiofx" | |
| - name: Push GitHub CI Packages | |
| if: github.event_name != 'pull_request' | |
| run: npm publish fetchclient.tgz --tag ${{ startsWith(github.ref, 'refs/tags/v') && 'latest' || 'next' }} --access public | |
| env: | |
| NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} |