diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 50526a0e2..515f3eef8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -29,108 +29,119 @@ concurrency: cancel-in-progress: true jobs: - publish-dry-run: - runs-on: ubuntu-latest - steps: - - name: Checkout mix repo - uses: actions/checkout@v4 + # publish-dry-run: + # runs-on: ubuntu-latest + # steps: + # - name: Checkout mix repo + # uses: actions/checkout@v4 - - name: Install FVM - shell: bash - run: | - curl -fsSL https://fvm.app/install.sh | bash - fvm use ${{ inputs.flutter-version }} --force + # - name: Install FVM + # shell: bash + # run: | + # curl -fsSL https://fvm.app/install.sh | bash + # fvm use ${{ inputs.flutter-version }} --force - - uses: kuhnroyal/flutter-fvm-config-action@v2 - id: fvm-config-action + # - uses: kuhnroyal/flutter-fvm-config-action@v2 + # id: fvm-config-action - - uses: subosito/flutter-action@v2 - with: - flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }} - channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }} + # - uses: subosito/flutter-action@v2 + # with: + # flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }} + # channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }} - - name: Setup Melos - uses: bluefireteam/melos-action@v3 + # - name: Setup Melos + # uses: bluefireteam/melos-action@v3 - - name: Run melos fix + # - name: Run melos fix + # run: | + # if [[ "${{ github.event.inputs.mix_lint }}" == "true" ]]; then + # cd packages/mix_lint && dart pub publish --dry-run && cd ../.. + # fi + # if [[ "${{ github.event.inputs.mix_annotations }}" == "true" ]]; then + # cd packages/mix_annotations && dart pub publish --dry-run && cd ../.. + # fi + # if [[ "${{ github.event.inputs.mix_generator }}" == "true" ]]; then + # cd packages/mix_generator && dart pub publish --dry-run && cd ../.. + # fi + # if [[ "${{ github.event.inputs.mix }}" == "true" ]]; then + # cd packages/mix && dart pub publish --dry-run && cd ../.. + # fi + # if [[ "${{ github.event.inputs.remix }}" == "true" ]]; then + # cd packages/remix && dart pub publish --dry-run && cd ../.. + # fi + # shell: bash + + # test-mincompat: + # needs: [publish-dry-run] + # runs-on: ubuntu-latest + # steps: + # - name: Checkout mix repo + # uses: actions/checkout@v4 + + # - name: Run Tests + # uses: ./.github/actions/test/ + # with: + # token: ${{ secrets.GITHUB_TOKEN }} + # flutter-version: 'mincompat' + + # test-stable: + # needs: [publish-dry-run] + # runs-on: ubuntu-latest + # steps: + # - name: Checkout mix repo + # uses: actions/checkout@v4 + + # - name: Run Tests + # uses: ./.github/actions/test/ + # with: + # token: ${{ secrets.GITHUB_TOKEN }} + + prepare-matrix: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - id: set-matrix run: | + matrix=() if [[ "${{ github.event.inputs.mix_lint }}" == "true" ]]; then - cd packages/mix_lint && dart pub publish --dry-run && cd ../.. + matrix+=('{"name": "mix_lint", "path": "packages/mix_lint"}') fi if [[ "${{ github.event.inputs.mix_annotations }}" == "true" ]]; then - cd packages/mix_annotations && dart pub publish --dry-run && cd ../.. + matrix+=('{"name": "mix_annotations", "path": "packages/mix_annotations"}') fi if [[ "${{ github.event.inputs.mix_generator }}" == "true" ]]; then - cd packages/mix_generator && dart pub publish --dry-run && cd ../.. + matrix+=('{"name": "mix_generator", "path": "packages/mix_generator"}') fi if [[ "${{ github.event.inputs.mix }}" == "true" ]]; then - cd packages/mix && dart pub publish --dry-run && cd ../.. + matrix+=('{"name": "mix", "path": "packages/mix"}') fi if [[ "${{ github.event.inputs.remix }}" == "true" ]]; then - cd packages/remix && dart pub publish --dry-run && cd ../.. + matrix+=('{"name": "remix", "path": "packages/remix"}') fi - shell: bash - - test-mincompat: - needs: [publish-dry-run] - runs-on: ubuntu-latest - steps: - - name: Checkout mix repo - uses: actions/checkout@v4 - - - name: Run Tests - uses: ./.github/actions/test/ - with: - token: ${{ secrets.GITHUB_TOKEN }} - flutter-version: 'mincompat' - - test-stable: - needs: [publish-dry-run] - runs-on: ubuntu-latest - steps: - - name: Checkout mix repo - uses: actions/checkout@v4 - - - name: Run Tests - uses: ./.github/actions/test/ - with: - token: ${{ secrets.GITHUB_TOKEN }} + echo "matrix=$(IFS=,; echo "[${matrix[*]}]")" >> $GITHUB_OUTPUT publish: - needs: [test-mincompat, test-stable, publish-dry-run] + needs: [test-mincompat, test-stable, publish-dry-run, prepare-matrix] environment: Production runs-on: ubuntu-latest strategy: max-parallel: 1 matrix: - package: [mix_lint, mix_annotations, mix_generator, mix, remix] - include: - - package: mix_lint - path: packages/mix_lint - condition: ${{ github.event.inputs.mix_lint == 'true' }} - - package: mix_annotations - path: packages/mix_annotations - condition: ${{ github.event.inputs.mix_annotations == 'true' }} - - package: mix_generator - path: packages/mix_generator - condition: ${{ github.event.inputs.mix_generator == 'true' }} - - package: mix - path: packages/mix - condition: ${{ github.event.inputs.mix == 'true' }} - - package: remix - path: packages/remix - condition: ${{ github.event.inputs.remix == 'true' }} + package: ${{fromJSON(needs.prepare-matrix.outputs.matrix)}} steps: - uses: actions/checkout@v4 - - name: '>> publish ${{ matrix.package }} package to pub.dev <<' - if: ${{ matrix.condition }} - id: publish - uses: k-paxian/dart-package-publisher@master - with: - accessToken: ${{ secrets.OAUTH_ACCESS_TOKEN }} - refreshToken: ${{ secrets.OAUTH_REFRESH_TOKEN }} - relativePath: ${{ matrix.path }} + - name: Echo matrix + run: echo "${{ matrix.package.name }} and ${{ matrix.package.path }}" + shell: bash + # - name: '>> publish ${{ matrix.package.name }} package to pub.dev <<' + # id: publish + # uses: k-paxian/dart-package-publisher@master + # with: + # accessToken: ${{ secrets.OAUTH_ACCESS_TOKEN }} + # refreshToken: ${{ secrets.OAUTH_REFRESH_TOKEN }} + # relativePath: ${{ matrix.package.path }} # - name: 'Commit release tag' # if: steps.publish.outputs.success # uses: hole19/git-tag-action@master