Skip to content

Commit

Permalink
Add setup composite action and refactor workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
kamiazya committed Jul 27, 2024
1 parent f5316f2 commit 46025df
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 111 deletions.
46 changes: 46 additions & 0 deletions .github/actions/setup/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Setup Action
description: Composite Setup Action

inputs:
node-version:
description: Node.js version
required: false
default: ''
skip-rust-setup:
description: Skip Rust setup
required: false
default: 'false'

runs:
using: composite
steps:
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup pnpm
uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version-file: ./.node-version
node-version: ${{ inputs.node-version }}
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
shell: bash
- name: Setup C++
if: ${{ inputs.skip-rust-setup != 'true' }}
run: |
sudo apt-get update
sudo apt-get install libstdc++-12-dev
shell: bash
- name: Setup Rust
if: ${{ inputs.skip-rust-setup != 'true' }}
uses: moonrepo/setup-rust@d8048d4fdff0633123678b093726e6d7c8ad6de5 # v1.2.0
with:
targets: wasm32-unknown-unknown
channel: nightly
components: clippy,rustfmt
target-dirs: web-csv-toolbox-wasm/target
- name: Install wasm-pack
if: ${{ inputs.skip-rust-setup != 'true' }}
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
shell: bash
21 changes: 2 additions & 19 deletions .github/workflows/.build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,8 @@ jobs:
steps:
- name: Checkout Repo
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- run: |
sudo apt-get update
sudo apt-get install libstdc++-12-dev
- name: Install latest
uses: moonrepo/setup-rust@d8048d4fdff0633123678b093726e6d7c8ad6de5 # v1.2.0
with:
targets: wasm32-unknown-unknown
channel: nightly
target-dirs: web-csv-toolbox-wasm/target
- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Setup
uses: ./.github/actions/setup
- name: Build
run: pnpm run build
env:
Expand Down
120 changes: 36 additions & 84 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,10 @@ jobs:
steps:
- name: Checkout Repo
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- name: Check
run: pnpm check:format

Expand All @@ -35,18 +31,10 @@ jobs:
steps:
- name: Checkout Repo
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- run: |
sudo apt-get update
sudo apt-get install libstdc++-12-dev
- name: Install latest
uses: moonrepo/setup-rust@d8048d4fdff0633123678b093726e6d7c8ad6de5 # v1.2.0
- name: Setup
uses: ./.github/actions/setup
with:
targets: wasm32-unknown-unknown
channel: nightly
components: clippy,rustfmt
target-dirs: web-csv-toolbox-wasm/target
- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
skip-rust-setup: 'true'
- name: Run Clippy
run: cargo clippy --manifest-path=./web-csv-toolbox-wasm/Cargo.toml --all-targets --all-features
env:
Expand All @@ -72,14 +60,10 @@ jobs:
steps:
- name: Checkout Repo
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- name: Copy artifacts
run: cp -r ${{ github.workspace }}/web-csv-toolbox-wasm/pkg ${{ github.workspace }}/node_modules/web-csv-toolbox-wasm
Expand All @@ -92,14 +76,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- name: Coverage
run: pnpm test:coverage
Expand All @@ -114,14 +94,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- name: Run benchmarks
uses: CodSpeedHQ/action@f11c406b8c87cda176ff341ed4925bc98086f6d1 # v2.4.2
Expand All @@ -138,14 +114,11 @@ jobs:
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
skip-rust-setup: 'true'
node-version: ${{ matrix.node-version }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- run: pnpm test run

test_deno:
Expand Down Expand Up @@ -180,13 +153,10 @@ jobs:
- firefox
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Use Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- run: npm test run -- --browser.name=${{ matrix.browsers }} --browser.headless

Expand All @@ -206,14 +176,12 @@ jobs:
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Use Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 20
cache: pnpm
skip-rust-setup: 'true'
# - if: matrix.browsers == 'safari'
# run: sudo safaridriver --enable
- run: pnpm install --frozen-lockfile
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- run: pnpm test run -- --browser.name=${{ matrix.browsers }} --browser.headless

Expand All @@ -229,13 +197,10 @@ jobs:
- edge
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Use Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- run: pnpm test run -- --browser.name=${{ matrix.browsers }} --browser.headless

Expand Down Expand Up @@ -266,14 +231,10 @@ jobs:
steps:
- name: Checkout Repo
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- name: Create Release Pull Request or Publish to npm
id: changesets
Expand All @@ -299,14 +260,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
skip-rust-setup: 'true'
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- name: Creating .npmrc
if: ${{ github.actor != 'dependabot[bot]' }}
Expand Down Expand Up @@ -343,15 +300,10 @@ jobs:
id-token: write
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
- name: Setup
uses: ./.github/actions/setup
with:
node-version-file: ./.node-version
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
skip-rust-setup: 'true'
- name: Build documentation
run: pnpm run doc
- name: Configure GitHub Pages
Expand Down
10 changes: 2 additions & 8 deletions .github/workflows/pr-snapshot-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,8 @@ jobs:
git checkout origin/main -- .changeset
fi
- name: Setup Node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version-file: ./.node-version
- uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
- name: Install dependencies
run: pnpm install --frozen-lockfile
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
- name: Setup
uses: ./.github/actions/setup
- name: Create an .npmrc
run: |
cat << EOF > "$HOME/.npmrc"
Expand Down

0 comments on commit 46025df

Please sign in to comment.