Detect dependency loops in module migrator #178
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: CI | |
env: | |
# Note: when changing this, also change jobs.node_tests.strategy.matrix.node_version. | |
DEFAULT_NODE_VERSION: 18 | |
on: | |
push: | |
branches: [main] | |
tags: ['**'] | |
pull_request: | |
jobs: | |
dart_tests: | |
name: "Dart tests | Dart ${{ matrix.dart_channel }} | ${{ matrix.os }}" | |
runs-on: "${{ matrix.os }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
dart_channel: [stable] | |
# TODO(nweiz): Re-enable this when | |
# https://github.com/dart-lang/sdk/issues/52121#issuecomment-1728534228 | |
# is addressed. | |
# include: [{os: ubuntu-latest, dart_channel: dev}] | |
steps: | |
- if: ${{ matrix.os == 'windows-latest' }} | |
run: git config --global core.autocrlf false | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
with: {sdk: "${{ matrix.dart_channel }}"} | |
- run: dart pub get | |
- run: dart pub run grinder pkg-standalone-dev | |
- name: Run tests | |
run: dart pub run test -p vm -x node -r expanded | |
# Unit tests that use Node.js, defined in test/. | |
# | |
# The versions should be kept up-to-date with the latest LTS Node releases. | |
# They next need to be rotated April 2021. See | |
# https://github.com/nodejs/Release. | |
node_tests: | |
name: "Node tests | Dart ${{ matrix.dart_channel }} | Node ${{ matrix.node_version }} | ${{ matrix.os }}" | |
runs-on: "${{ matrix.os }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
dart_channel: [stable] | |
node_version: [18] | |
include: | |
# Include LTS versions on Ubuntu | |
- os: ubuntu-latest | |
dart_channel: stable | |
node_version: 16 | |
- os: ubuntu-latest | |
dart_channel: stable | |
node_version: 14 | |
- os: ubuntu-latest | |
dart_channel: dev | |
steps: | |
- if: ${{ matrix.os == 'windows-latest' }} | |
run: git config --global core.autocrlf false | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
with: {sdk: "${{ matrix.dart_channel }}"} | |
- run: dart pub get | |
- uses: actions/setup-node@v2 | |
with: {node-version: "${{ matrix.node_version }}"} | |
- run: npm install | |
- run: dart pub run grinder pkg-npm-dev | |
- name: Run tests | |
run: dart pub run test -t node -r expanded | |
static_analysis: | |
name: Static analysis | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Analyze dart | |
run: dart analyze --fatal-warnings --fatal-infos lib tool test | |
- name: Check formatting | |
run: dart format -o none --set-exit-if-changed . | |
sanity_checks: | |
name: Sanity checks | |
runs-on: ubuntu-latest | |
needs: [dart_tests, node_tests, static_analysis] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/migrator'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Run checks | |
run: dart pub run grinder sanity-check-before-release | |
deploy_github_linux: | |
name: "Deploy Github: Linux" | |
runs-on: ubuntu-latest | |
needs: [sanity_checks] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/migrator'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Deploy | |
run: dart pub run grinder pkg-github-release pkg-github-linux | |
env: | |
GH_TOKEN: "${{ secrets.GH_TOKEN }}" | |
GH_USER: sassbot | |
deploy_github_macos: | |
name: "Deploy Github: Mac OS" | |
runs-on: macos-latest | |
needs: [deploy_github_linux] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/migrator'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Deploy | |
run: dart pub run grinder pkg-github-macos | |
env: | |
GH_TOKEN: "${{ secrets.GH_TOKEN }}" | |
GH_USER: sassbot | |
deploy_github_windows: | |
name: "Deploy Github: Windows" | |
runs-on: windows-latest | |
needs: [deploy_github_linux] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/migrator'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Deploy | |
run: dart pub run grinder pkg-github-windows | |
env: | |
GH_TOKEN: "${{ secrets.GH_TOKEN }}" | |
GH_USER: sassbot | |
deploy_npm: | |
name: Deploy npm | |
runs-on: ubuntu-latest | |
needs: [sanity_checks] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/migrator'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- uses: actions/setup-node@v2 | |
with: {node-version: "${{ env.DEFAULT_NODE_VERSION }}"} | |
- name: Deploy | |
run: dart pub run grinder pkg-npm-deploy | |
env: | |
NPM_TOKEN: "${{ secrets.NPM_TOKEN }}" | |
deploy_pub: | |
name: "Deploy Pub" | |
runs-on: ubuntu-latest | |
needs: [sanity_checks] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/migrator'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Deploy | |
run: dart pub run grinder pkg-pub-deploy | |
env: {PUB_CREDENTIALS: "${{ secrets.PUB_CREDENTIALS }}"} | |
deploy_homebrew: | |
name: "Deploy Homebrew" | |
runs-on: ubuntu-latest | |
needs: [sanity_checks] | |
if: "startsWith(github.ref, 'refs/tags/') && github.repository == 'sass/migrator'" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dart-lang/setup-dart@v1 | |
- run: dart pub get | |
- name: Deploy | |
run: dart pub run grinder pkg-homebrew-update | |
env: | |
GH_TOKEN: "${{ secrets.GH_TOKEN }}" | |
GH_USER: sassbot |