Skip to content

🔖 release chopper generator v7.0.4 (#502) #42

🔖 release chopper generator v7.0.4 (#502)

🔖 release chopper generator v7.0.4 (#502) #42

Workflow file for this run

name: Publish packages
on:
push:
branches:
- master
defaults:
run:
shell: bash
env:
PUB_ENVIRONMENT: bot.github
permissions: read-all
jobs:
get_base_version:
name: "Get base version"
runs-on: ubuntu-latest
strategy:
matrix:
package: [ chopper, chopper_generator, chopper_built_value ]
outputs:
BASE_VERSION_chopper: ${{ steps.load_base_version.outputs.BASE_VERSION_chopper }}
BASE_VERSION_chopper_generator: ${{ steps.load_base_version.outputs.BASE_VERSION_chopper_generator }}
BASE_VERSION_chopper_built_value: ${{ steps.load_base_version.outputs.BASE_VERSION_chopper_built_value }}
steps:
- uses: dart-lang/setup-dart@v1
with:
sdk: stable
- id: checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- run: git checkout HEAD^
- name: Load base version
id: load_base_version
run: |
set -e
echo "BASE_VERSION_${{ matrix.package }}=$(awk '/^version: / {print $2}' ${{ matrix.package }}/pubspec.yaml)" >> $GITHUB_OUTPUT
publish:
name: "Publish"
needs: get_base_version
runs-on: ubuntu-latest
strategy:
matrix:
package: [ chopper, chopper_generator, chopper_built_value ]
fail-fast: true
max-parallel: 1
steps:
- uses: dart-lang/setup-dart@v1
with:
sdk: stable
- id: checkout
uses: actions/checkout@v3
- name: Load this version
id: load_this_version
run: |
set -e
echo "THIS_VERSION=$(awk '/^version: / {print $2}' ${{ matrix.package }}/pubspec.yaml)" >> $GITHUB_ENV
- name: Compare versions
id: compare_versions
env:
BASE_VERSION_chopper: ${{ needs.get_base_version.outputs.BASE_VERSION_chopper }}
BASE_VERSION_chopper_generator: ${{ needs.get_base_version.outputs.BASE_VERSION_chopper_generator }}
BASE_VERSION_chopper_built_value: ${{ needs.get_base_version.outputs.BASE_VERSION_chopper_built_value }}
run: |
set -e
pushd tool || exit
dart pub get
echo "IS_VERSION_GREATER=$(dart run compare_versions.dart $THIS_VERSION $BASE_VERSION_${{ matrix.package }})" >> $GITHUB_ENV
popd || exit
- name: Validate pub.dev topics
id: validate_pub_dev_topics
run: |
set -e
pushd ${{ matrix.package }} || exit
pattern="^[a-z][a-z0-9-]*[a-z0-9]$"
for topic in $(yq -r '.topics[]' pubspec.yaml); do
if [[ ! $topic =~ $pattern ]]; then
echo "Invalid topic: $topic"
exit 1
fi
done
popd || exit
- name: Set up pub credentials
id: credentials
if: ${{ env.IS_VERSION_GREATER == 1 }}
run: |
set -e
mkdir -p $XDG_CONFIG_HOME/dart
echo -n '${{ secrets.CREDENTIAL_JSON }}' > $XDG_CONFIG_HOME/dart/pub-credentials.json
- name: Publish
id: publish
if: ${{ env.IS_VERSION_GREATER == 1 }}
run: |
set -e
pushd ${{ matrix.package }} || exit
yq -i 'del(.dependency_overrides)' pubspec.yaml
dart pub publish --force
popd || exit
- name: Skip publish
id: skip_publish
if: ${{ env.IS_VERSION_GREATER == 0 }}
run: echo "Skipping publish for ${{ matrix.package }} because the version is not greater than the one on pub.dev"
- name: Cleanup
id: cleanup
if: ${{ always() }}
run: |
rm -rf $XDG_CONFIG_HOME/dart/pub-credentials.json