From 44ea6e80fb03eb2b9439ba031cb59e5544408cd0 Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Tue, 16 May 2023 16:41:01 -0700 Subject: [PATCH] Pull more repeated GH Action tasks into sub-actions 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. --- .../{build-protobuf => initialize}/action.yml | 14 +- .github/util/sass-spec/action.yml | 17 ++ .github/workflows/ci.yml | 158 +++++++----------- 3 files changed, 94 insertions(+), 95 deletions(-) rename .github/util/{build-protobuf => initialize}/action.yml (59%) create mode 100644 .github/util/sass-spec/action.yml diff --git a/.github/util/build-protobuf/action.yml b/.github/util/initialize/action.yml similarity index 59% rename from .github/util/build-protobuf/action.yml rename to .github/util/initialize/action.yml index 9b87e9012..a9759d17a 100644 --- a/.github/util/build-protobuf/action.yml +++ b/.github/util/initialize/action.yml @@ -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 }}"} diff --git a/.github/util/sass-spec/action.yml b/.github/util/sass-spec/action.yml new file mode 100644 index 000000000..4180926bc --- /dev/null +++ b/.github/util/sass-spec/action.yml @@ -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 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 442728445..17eb0cfef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 @@ -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 @@ -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 @@ -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 @@ -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} @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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: @@ -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: | @@ -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: @@ -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: @@ -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: @@ -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 }}"} @@ -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: @@ -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: @@ -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 }}"}