* `cargo clippy --fix`
* use `map_while` instead of `filter_map`
- `filter_map()` will run forever if the iterator repeatedly produces an `Err`
```
❯ cargo clippy
Checking tailwindcss-oxide v0.1.0 (/Users/robin/github.com/tailwindlabs/tailwindcss/oxide/crates/cli)
warning: `filter_map()` will run forever if the iterator repeatedly produces an `Err`
--> crates/cli/src/main.rs:108:14
|
108 | .filter_map(Result::ok)
| ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `map_while(Result::ok)`
|
note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error
--> crates/cli/src/main.rs:106:9
|
106 | / read_lines(path)
107 | | .unwrap()
| |_____________________^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok
= note: `#[warn(clippy::lines_filter_map_ok)]` on by default
warning: `tailwindcss-oxide` (bin "tailwindcss-oxide") generated 1 warning
Finished dev [unoptimized + debuginfo] target(s) in 0.13s
```
* log used versions of all the tools we are using
* ensure we install Rust
102 lines
2.5 KiB
YAML
102 lines
2.5 KiB
YAML
name: Prepare Release
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
env:
|
|
CI: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
permissions:
|
|
contents: write # for softprops/action-gh-release to create GitHub release
|
|
|
|
runs-on: macos-11
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [16]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- run: git fetch --tags -f
|
|
|
|
- name: Resolve version
|
|
id: vars
|
|
run: |
|
|
echo "TAG_NAME=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
|
|
|
|
- name: Get release notes
|
|
run: |
|
|
RELEASE_NOTES=$(node ./scripts/release-notes.js)
|
|
echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV
|
|
echo "$RELEASE_NOTES" >> $GITHUB_ENV
|
|
echo "EOF" >> $GITHUB_ENV
|
|
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
registry-url: 'https://registry.npmjs.org'
|
|
|
|
- name: Use the `stable` engine
|
|
run: |
|
|
node ./scripts/swap-engines.js
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Check versions
|
|
run: |
|
|
echo "Node:" `node --version`
|
|
echo "NPM:" `npm --version`
|
|
echo "Rust:" `rustc --version`
|
|
echo "Cargo:" `cargo --version`
|
|
|
|
- name: Build Tailwind CSS
|
|
run: npm run build
|
|
|
|
- name: Install standalone cli dependencies
|
|
run: npm install
|
|
working-directory: standalone-cli
|
|
|
|
- name: Build standalone cli
|
|
run: npm run build
|
|
working-directory: standalone-cli
|
|
|
|
- name: Test
|
|
run: |
|
|
npm test || \
|
|
npm test || \
|
|
npm test || exit 1
|
|
working-directory: standalone-cli
|
|
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
draft: true
|
|
tag_name: ${{ env.TAG_NAME }}
|
|
body: |
|
|
${{ env.RELEASE_NOTES }}
|
|
files: |
|
|
standalone-cli/dist/tailwindcss-linux-arm64
|
|
standalone-cli/dist/tailwindcss-linux-armv7
|
|
standalone-cli/dist/tailwindcss-linux-x64
|
|
standalone-cli/dist/tailwindcss-macos-arm64
|
|
standalone-cli/dist/tailwindcss-macos-x64
|
|
standalone-cli/dist/tailwindcss-windows-x64.exe
|
|
standalone-cli/dist/tailwindcss-windows-arm64.exe
|