-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
13040ff
commit 6a016ac
Showing
3 changed files
with
207 additions
and
18 deletions.
There are no files selected for viewing
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,136 @@ | ||
name: Copy Parse Markdown and Generate JSON from Source Repo | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
source_repo: | ||
description: 'Source repository name' | ||
required: false | ||
default: 'DmitryRyumin/NewEraAI-Papers' | ||
source_file_path: | ||
description: 'Path to the file in the source repository' | ||
required: false | ||
default: 'code/markdown_to_json_parser.py' | ||
code_directory: | ||
description: 'Directory where code is stored' | ||
required: false | ||
default: 'code' | ||
display_file_contents: | ||
description: 'Whether or not to display the contents of the doanload file and the destination file' | ||
required: false | ||
default: 'false' | ||
schedule: | ||
- cron: '30 23 * * *' | ||
|
||
jobs: | ||
copy-code: | ||
runs-on: ubuntu-latest | ||
|
||
permissions: | ||
contents: write | ||
|
||
env: | ||
SOURCE_FILE_PATH: ${{ github.workspace }}/${{ github.event.inputs.code_directory }}/markdown_to_json_parser_new.py | ||
SOURCE_DESTINATION_FILE_PATH: ${{ github.workspace }}/${{ github.event.inputs.source_file_path }} | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
continue-on-error: true # Continue with the workflow even if the checkout fails | ||
with: | ||
ref: ${{ github.event.before || 'main' }} | ||
|
||
- name: Define show_file_content function | ||
run: echo 'source ${{ github.workspace }}/scripts/show_file_content.sh' > show_file_content_step.sh | ||
|
||
- name: Download source file | ||
run: | | ||
if mkdir -p "${{ github.workspace }}/${{ github.event.inputs.code_directory }}"; then | ||
echo "Directory created successfully or already existed." | ||
else | ||
echo "Failed to create directory." | ||
exit 1 | ||
fi | ||
source_url="https://raw.githubusercontent.com/${{ github.event.inputs.source_repo }}/main/${{ github.event.inputs.source_file_path }}" | ||
if curl -o "${{ env.SOURCE_FILE_PATH }}" "$source_url"; then | ||
echo "Source file downloaded successfully." | ||
else | ||
echo "Failed to download source file." | ||
exit 1 | ||
fi | ||
- name: Display content of the downloaded source file | ||
run: | | ||
set -e | ||
source show_file_content_step.sh | ||
show_file_content "${{ env.SOURCE_FILE_PATH }}" "${{ github.event.inputs.display_file_contents }}" | ||
- name: Display content of destination file from target repository | ||
run: | | ||
set -e | ||
source show_file_content_step.sh | ||
show_file_content "${{ env.SOURCE_DESTINATION_FILE_PATH }}" "${{ github.event.inputs.display_file_contents }}" | ||
- name: Compare and handle files | ||
run: | | ||
set -e | ||
handle_equal_files() { | ||
echo "Files are equal. Deleting SOURCE_FILE_PATH." | ||
if rm "${{ env.SOURCE_FILE_PATH }}"; then | ||
echo "SOURCE_FILE_PATH deleted successfully." | ||
else | ||
echo "Failed to delete SOURCE_FILE_PATH." | ||
exit 1 | ||
fi | ||
} | ||
handle_unequal_files() { | ||
echo "Files are not equal. Replacing SOURCE_DESTINATION_FILE_PATH with content from SOURCE_FILE_PATH." | ||
if cat "${{ env.SOURCE_FILE_PATH }}" > "${{ env.SOURCE_DESTINATION_FILE_PATH }}"; then | ||
echo "SOURCE_DESTINATION_FILE_PATH replaced successfully." | ||
rm "${{ env.SOURCE_FILE_PATH }}" | ||
else | ||
echo "Failed to replace SOURCE_DESTINATION_FILE_PATH." | ||
exit 1 | ||
fi | ||
} | ||
handle_missing_destination() { | ||
echo "SOURCE_DESTINATION_FILE_PATH does not exist. Renaming SOURCE_FILE_PATH to SOURCE_DESTINATION_FILE_PATH." | ||
if [ -f "${{ env.SOURCE_FILE_PATH }}" ] && [ -f "${{ env.SOURCE_DESTINATION_FILE_PATH }}" ]; then | ||
if mv "${{ env.SOURCE_FILE_PATH }}" "${{ env.SOURCE_DESTINATION_FILE_PATH }}"; then | ||
echo "Files renamed successfully." | ||
else | ||
echo "Failed to rename files." | ||
exit 1 | ||
fi | ||
else | ||
echo "One or both of the files do not exist." | ||
fi | ||
} | ||
if [ -f "${{ env.SOURCE_DESTINATION_FILE_PATH }}" ]; then | ||
if cmp -s "${{ env.SOURCE_DESTINATION_FILE_PATH }}" "${{ env.SOURCE_FILE_PATH }}"; then | ||
handle_equal_files | ||
else | ||
handle_unequal_files | ||
fi | ||
else | ||
handle_missing_destination | ||
fi | ||
- name: Display working code directory content | ||
run: | | ||
ls -al "${{ github.workspace }}/${{ github.event.inputs.code_directory }}" | ||
- name: Auto commit changes | ||
uses: stefanzweifel/git-auto-commit-action@v5 | ||
with: | ||
commit_message: 'Copy Parse Markdown and Generate JSON from Source Repo' | ||
env: | ||
PAPER_TOKEN: ${{ secrets.PAPER_TOKEN }} | ||
|
||
- name: Set output status | ||
run: echo "status=${{ steps.parse.outcome }}" >> $GITHUB_ENV |
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
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,17 @@ | ||
# show_file_content.sh | ||
|
||
show_file_content() { | ||
local file_path=$1 | ||
local display_file_contents=$2 | ||
|
||
if [[ -f "$file_path" ]]; then | ||
if [[ "$display_file_contents" == 'true' ]]; then | ||
echo "Displaying content of the file:" | ||
cat "$file_path" | ||
else | ||
echo "Displaying content is blocked." | ||
fi | ||
else | ||
echo "File does not exist." | ||
fi | ||
} |