| name: Dart Docker Image CI |
| |
| on: |
| push: |
| branches: [main] |
| pull_request: |
| branches: [main] |
| schedule: |
| - cron: 0 0 * * 0 |
| |
| env: |
| GENERATE_STACKBREW_LIBRARY: scripts/bin/generate_library.dart |
| |
| defaults: |
| run: |
| shell: "bash -Eeuo pipefail -x {0}" |
| |
| jobs: |
| generate-jobs: |
| name: Generate Jobs |
| runs-on: ubuntu-latest |
| outputs: |
| strategy: ${{ steps.generate-jobs.outputs.strategy }} |
| steps: |
| - uses: dart-lang/setup-dart@65eb853c7ba17dde3be364c3d2858773e7144260 |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd |
| - id: install |
| name: Install dependencies |
| run: dart pub get |
| working-directory: scripts |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd |
| with: |
| path: bashbrew |
| ref: v0.1.13 |
| repository: docker-library/bashbrew |
| - id: generate-jobs |
| name: Generate Jobs |
| run: | |
| sed -i 's/image\=.*/image\=dart/' bashbrew/scripts/github-actions/generate.sh |
| strategy="$(bashbrew/scripts/github-actions/generate.sh)" |
| jq . <<<"$strategy" # sanity check / debugging aid |
| echo "strategy=$strategy" >> $GITHUB_OUTPUT |
| test: |
| needs: generate-jobs |
| strategy: ${{ fromJson(needs.generate-jobs.outputs.strategy) }} |
| name: ${{ matrix.name }} |
| runs-on: ${{ matrix.os }} |
| steps: |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd |
| - name: Prepare Environment |
| run: ${{ matrix.runs.prepare }} |
| - name: Pull Dependencies |
| run: ${{ matrix.runs.pull }} |
| - name: Build ${{ matrix.name }} |
| run: ${{ matrix.runs.build }} |
| - name: History ${{ matrix.name }} |
| run: ${{ matrix.runs.history }} |
| - name: Test ${{ matrix.name }} |
| run: ${{ matrix.runs.test }} |
| - name: '"docker images"' |
| run: ${{ matrix.runs.images }} |