-
Notifications
You must be signed in to change notification settings - Fork 403
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(config): Add workflow for the automatic config conversion
The workflow is triggered on PRs for main and releases/** branches if the PR is set for review or synchronized.
- Loading branch information
1 parent
965e15a
commit 5a3d808
Showing
2 changed files
with
57 additions
and
0 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
name: Automatic conversion of application.yml to ors-config.yml | ||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
- releases/** | ||
- feat/config-cleanup-finalize # for testing | ||
types: [ edited, opened, ready_for_review, review_requested, reopened, closed, synchronize ] | ||
workflow_dispatch: | ||
|
||
|
||
jobs: | ||
detect_config_change: | ||
name: Detect and commit config changes | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ github.head_ref }} | ||
- name: Check PR state is ready_for_review | ||
run: | | ||
if [ "${{ github.event_name }}" == "pull_request" ]; then | ||
pr_state=$(gh pr view --json state --jq .state) | ||
pr_is_draft=$(gh pr view --json isDraft --jq .isDraft) | ||
echo "pr_state=$pr_state" >> $GITHUB_ENV | ||
echo "pr_is_draft=$pr_is_draft" >> $GITHUB_ENV | ||
else | ||
echo "This action is only intended to be run on pull requests." | ||
exit 1 | ||
fi | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Convert application.yml to ors-config.yml | ||
run: | | ||
.github/utils/config_conversion.sh ors-api/src/main/resources/application.yml ors-api/ors-config.yml | ||
- name: Check with git if ors-api/ors-config.yml has changed | ||
id: git-check | ||
if: env.pr_state == 'OPEN' && env.pr_is_draft == 'false' | ||
run: | | ||
# Don't fail on exit code 1 (diff found) | ||
set +e | ||
git diff --exit-code --name-only ors-api/ors-config.yml | ||
exit_value=$? | ||
echo Found exit code $exit_value | ||
# Write out the exit code using environment file | ||
if [ $exit_value == 1 ]; then | ||
echo "config_has_changed=true" >> $GITHUB_ENV | ||
else | ||
echo "Config hasn't changed. Skipping commit." | ||
fi | ||
- uses: MichaelsJP/git-auto-commit-action@v5 | ||
if: env.pr_state == 'OPEN' && env.pr_is_draft == 'false' && env.config_has_changed == 'true' | ||
with: | ||
commit_message: 'chore(config): automatic conversion of application.yml to ors-config.yml' |