Refine management of development dependencies #284
Workflow file for this run
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: 🦕 | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
paths: | |
- '**' | |
workflow_dispatch: | |
defaults: | |
run: | |
# Enable fail-fast option. https://github.com/github/docs/pull/18934 | |
shell: 'bash' | |
jobs: | |
check: | |
timeout-minutes: 15 | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
# dprint and typos check twice in their actions and last our task, but the speed is acceptable :zap: | |
- uses: dprint/[email protected] | |
with: | |
dprint-version: '0.45.1' # selfup {"extract":"\\d[^']+","replacer":["bash","-c","dprint --version | cut -d ' ' -f 2"]} | |
- uses: crate-ci/[email protected] # selfup {"extract":"\\d\\.\\d+\\.\\d+","replacer":["bash","-c","typos --version | cut -d ' ' -f 2"]} | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: '1.45.5' # selfup {"extract":"\\d[^']+","replacer":["bash","-c","deno --version | head -n 1 | cut -d ' ' -f 2"]} | |
- run: deno task check | |
build: | |
timeout-minutes: 15 | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: '1.45.5' # selfup {"extract":"\\d[^']+","replacer":["bash","-c","deno --version | head -n 1 | cut -d ' ' -f 2"]} | |
- name: Ensure cache before build | |
run: deno task cache | |
- name: Install gh-action-escape | |
run: curl -fsSL https://raw.githubusercontent.com/kachick/gh-action-escape/v0.2.0/scripts/install-in-github-action.sh | sh -s v0.2.0 | |
- name: Build | |
id: build | |
run: deno task build 2>/dev/null | gh-action-escape -name=report 2>/dev/null | tee --append "$GITHUB_OUTPUT" | |
- name: Upload the product for nightly use and debug | |
uses: actions/upload-artifact@v4 | |
with: | |
name: '${{ fromJson(steps.build.outputs.report).productBasename }}' | |
path: '${{ fromJson(steps.build.outputs.report).productPath }}' | |
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` |