Skip to content

Detect dependency loops in module migrator #179

Detect dependency loops in module migrator

Detect dependency loops in module migrator #179

Workflow file for this run

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