経緯
私の携わっているプロジェクトでは、release/〇〇.〇〇みたいな感じでバージョンごとにブランチ切ってるんですが、ブランチに記載しているバージョンとgredleに記載しているバージョンが違うというケースが発生しました
まぁ原因は私のバージョン累進忘れなんですけどね・・・
ということで、バージョンチェックもActionsでやろうということになったので今回はそのお話です
サンプル
name: ANDROID_CI on: push: branches: - develop - release/** - master pull_request: branches: - develop - release/** - master jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set env to develop if: endsWith(github.ref, '/develop') || endsWith(github.base_ref , 'develop') run: echo "FLAVOR=develop" >> $GITHUB_ENV - name: Set env to release if: contains(github.ref, '/release') || contains(github.base_ref , 'release') # バージョン累進チェックを行う run: | if echo ${{github.ref}} | grep "${APK_VERSION}" > /dev/null || echo ${{github.base_ref}} | grep "${APK_VERSION}" > /dev/null ; then echo "FLAVOR=release" >> $GITHUB_ENV else exit 1 fi - name: Set env to production if: endsWith(github.ref, '/master') || endsWith(github.base_ref , 'master') run: echo "FLAVOR=prod" >> $GITHUB_ENV ...
このようにgrep検索を条件にすることで実現できます
検索結果がある場合はそのまま環境変数を設定する処理を行い、なかったら「exit 1」で強制終了
grep部の変数はなぜかクオーテーションつけないと「unary operator expected」というエラーが発生したので必須のようです
/dev/nullに関してはなんのためにいるのかわかっていないですが、これがないと動かなかったです
参考:
bash何もわからん
今回も最後まで見てくださってありがとうございました