Skip to content

Commit

Permalink
Pull more repeated GH Action tasks into sub-actions
Browse files Browse the repository at this point in the history
This converts the build-protobuf action into a general action that
initializes Dart _and_ builds the protobuf. It also factors out the
repeated work to set up the sass-spec repo.
  • Loading branch information
nex3 committed May 16, 2023
1 parent 4692841 commit 44ea6e8
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 95 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
name: Build Protobuf
description: Check out and build the Dart Sass embedded protocol buffer.
name: Initialize
description: Check out Dart Sass and build the embedded protocol buffer.
inputs:
github-token: {required: true}
sdk: {required: false, default: stable}
architecture: {required: false}
runs:
using: composite
steps:
- uses: dart-lang/setup-dart@v1
with:
sdk: "${{ inputs.sdk }}"
architecture: "${{ inputs.architecture }}"

- run: dart pub get
shell: bash

- uses: bufbuild/buf-setup-action@v1.13.1
with: {github_token: "${{ inputs.github-token }}"}

Expand Down
17 changes: 17 additions & 0 deletions .github/util/sass-spec/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: sass-spec
description: Check out sass-spec and install its dependencies.
inputs:
node-version: {required: true}
runs:
using: composite
steps:
- name: Check out sass-spec
uses: sass/clone-linked-repo@v1
with: {repo: sass/sass-spec}

- uses: actions/setup-node@v3
with: {node-version: "${{ inputs.node-version }}"}

- run: npm install
working-directory: sass-spec
shell: bash
158 changes: 65 additions & 93 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,7 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get

- uses: ./.github/util/build-protobuf
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- name: Analyze Dart
Expand All @@ -47,8 +44,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- name: dartdoc sass
run: dart run dartdoc --quiet --no-generate-docs
--errors ambiguous-doc-reference,broken-link,deprecated
Expand All @@ -75,19 +73,13 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
with: {sdk: "${{ matrix.dart_channel }}"}
- run: dart pub get
- name: Check out sass-spec
uses: sass/clone-linked-repo@v1
with: {repo: sass/sass-spec}
- uses: actions/setup-node@v3
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"}
- run: npm install
working-directory: sass-spec
- uses: ./.github/util/initialize
with:
sdk: ${{ matrix.dart_channel }}
github-token: ${{ github.token }}

- uses: ./.github/util/build-protobuf
with: {github-token: "${{ github.token }}"}
- uses: ./.github/util/sass-spec
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"}

- name: Run specs
run: npm run sass-spec -- --dart .. $extra_args
Expand Down Expand Up @@ -121,23 +113,13 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
with: {sdk: "${{ matrix.dart_channel }}"}
- run: dart pub get
- uses: actions/setup-node@v3
with: {node-version: "${{ matrix.node_version }}"}
- run: npm install

- uses: ./.github/util/build-protobuf
with: {github-token: "${{ github.token }}"}

- name: Check out sass-spec
uses: sass/clone-linked-repo@v1
with: {repo: sass/sass-spec}
- uses: ./.github/util/initialize
with:
sdk: ${{ matrix.dart_channel }}
github-token: ${{ github.token }}

- name: Install sass-spec dependencies
run: npm install
working-directory: sass-spec
- uses: ./.github/util/sass-spec
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"}

- name: Build JS
run: dart run grinder pkg-npm-dev
Expand Down Expand Up @@ -173,13 +155,12 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
with: {sdk: stable}
- run: dart pub get

- uses: ./.github/util/build-protobuf
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- uses: ./.github/util/sass-spec
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"}

- name: Check out the embedded host
uses: sass/clone-linked-repo@v1
with: {repo: sass/embedded-host-node}
Expand All @@ -197,14 +178,6 @@ jobs:
mv {`pwd`/,dist/}lib/src/vendor/dart-sass
working-directory: embedded-host-node

- name: Check out sass-spec
uses: sass/clone-linked-repo@v1
with: {repo: sass/sass-spec}

- name: Install sass-spec dependencies
run: npm install
working-directory: sass-spec

- name: Version info
run: |
path=embedded-host-node/dist/lib/src/vendor/dart-sass/sass
Expand All @@ -231,12 +204,10 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
with: {sdk: "${{ matrix.dart_channel }}"}
- run: dart pub get

- uses: ./.github/util/build-protobuf
with: {github-token: "${{ github.token }}"}
- uses: ./.github/util/initialize
with:
sdk: ${{ matrix.dart_channel }}
github-token: ${{ github.token }}

- run: dart run grinder pkg-standalone-dev
- name: Run tests
Expand Down Expand Up @@ -271,16 +242,15 @@ jobs:
node_version: 18
steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
with: {sdk: "${{ matrix.dart_channel }}"}
- run: dart pub get
- uses: ./.github/util/initialize
with:
sdk: ${{ matrix.dart_channel }}
github-token: ${{ github.token }}

- uses: actions/setup-node@v3
with: {node-version: "${{ matrix.node_version }}"}
- run: npm install

- uses: ./.github/util/build-protobuf
with: {github-token: "${{ github.token }}"}

- run: dart run grinder before-test
- name: Run tests
run: dart run test -j 2 -t node
Expand All @@ -300,8 +270,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- name: Run checks
run: dart run grinder double-check-before-release

Expand All @@ -317,8 +288,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- run: dart run grinder fetch-bootstrap${{matrix.bootstrap_version}}
env: {GITHUB_BEARER_TOKEN: "${{ secrets.GITHUB_TOKEN }}"}
- name: Build
Expand All @@ -331,8 +303,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- run: dart run grinder fetch-bourbon
env: {GITHUB_BEARER_TOKEN: "${{ secrets.GITHUB_TOKEN }}"}
- name: Test
Expand All @@ -347,8 +320,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- run: dart run grinder fetch-foundation
env: {GITHUB_BEARER_TOKEN: "${{ secrets.GITHUB_TOKEN }}"}
# TODO(nweiz): Foundation has proper Sass tests, but they're currently not
Expand All @@ -364,8 +338,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- run: dart run grinder fetch-bulma
env: {GITHUB_BEARER_TOKEN: "${{ secrets.GITHUB_TOKEN }}"}
- name: Build
Expand All @@ -379,11 +354,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: bufbuild/buf-setup-action@v1.13.1
with: {github_token: "${{ github.token }}"}
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- run: dart run grinder protobuf
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- name: Deploy
run: dart run grinder pkg-github-release pkg-github-linux-ia32 pkg-github-linux-x64
env:
Expand All @@ -405,11 +378,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: bufbuild/buf-setup-action@v1.13.1
with: {github_token: "${{ github.token }}"}
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- run: dart run grinder protobuf
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- uses: docker/setup-qemu-action@v2
- name: Deploy
run: |
Expand Down Expand Up @@ -445,14 +416,12 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: bufbuild/buf-setup-action@v1.13.1
with: {github_token: "${{ github.token }}"}
- uses: dart-lang/setup-dart@v1
- uses: ./.github/util/initialize
# Workaround for dart-lang/setup-dart#59
with:
github-token: ${{ github.token }}
architecture: ${{ matrix.architecture }}
- run: dart pub get
- run: dart run grinder protobuf

- name: Deploy
run: dart run grinder pkg-github-${{ matrix.platform }}
env:
Expand All @@ -467,10 +436,11 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}
- uses: actions/setup-node@v3
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"}

- name: Deploy
run: dart run grinder pkg-npm-deploy
env:
Expand All @@ -488,6 +458,7 @@ jobs:
- run: dart pub get
- uses: actions/setup-node@v3
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"}

- name: Deploy
run: dart run grinder update-bazel
env:
Expand All @@ -502,11 +473,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- run: dart run grinder protobuf
- uses: actions/setup-node@v3
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"}
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- name: Deploy
run: dart run grinder pkg-pub-deploy
env: {PUB_CREDENTIALS: "${{ secrets.PUB_CREDENTIALS }}"}
Expand All @@ -519,8 +488,9 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- uses: ./.github/util/initialize
with: {github-token: "${{ github.token }}"}

- name: Deploy
run: dart run grinder deploy-sub-packages
env:
Expand All @@ -538,6 +508,7 @@ jobs:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get

- name: Deploy
run: dart run grinder pkg-homebrew-update
env:
Expand All @@ -554,6 +525,7 @@ jobs:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
- run: dart pub get

- name: Deploy
run: dart run grinder pkg-chocolatey-deploy
env: {CHOCOLATEY_TOKEN: "${{ secrets.CHOCOLATEY_TOKEN }}"}
Expand Down

0 comments on commit 44ea6e8

Please sign in to comment.