diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index fa8c10e7..2db3d6b5 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -28,7 +28,6 @@ jobs: - name: run merge script run: | - python merge/EBeam_merge.py - name: move merge output files to new folder @@ -44,47 +43,81 @@ jobs: cp "/home/runner/work/openEBL-2024-02/openEBL-2024-02/merge/$file" merge_output/ done - - name: upload artifact + - name: upload merge artifact uses: actions/upload-artifact@v4 id: artifact-upload with: name: merge-files path: merge_output/ - - name: get artifact url + - name: add vars needed for merge artifact url to a txt file run: | IFS='/' read -ra REPO <<< "$GITHUB_REPOSITORY" OWNER="${REPO[0]}" REPO_NAME="${REPO[1]}" - echo "Owner: $OWNER" - echo "Repository: $REPO_NAME" - RUN_ID=${{ github.run_id }} ARTIFACT_ID=${{ steps.artifact-upload.outputs.artifact-id }} - ARTIFACT_URL="https://github.com/$OWNER/$REPO_NAME/actions/runs/$RUN_ID/artifacts/$ARTIFACT_ID" - echo "Artifact URL: $ARTIFACT_URL" + + # add vars to txt file + echo "$ARTIFACT_ID" > url_info.txt + echo "$RUN_ID" >> url_info.txt + echo "$OWNER" >> url_info.txt + echo "$REPO_NAME" >> url_info.txt + + - name: upload txt file as an artifact + uses: actions/upload-artifact@v4 + with: + name: url-info + path: url_info.txt + + # seperate job needed so we can check out and change code from gh-pages branch + update-url: + runs-on: ubuntu-latest + + needs: merge + + steps: + - name: checkout repo content + uses: actions/checkout@v2 + with: + ref: gh-pages + + - name: download url-info artifact + uses: actions/download-artifact@v4 + with: + name: url-info + path: . - echo "ARTIFACT_URL=$ARTIFACT_URL" >> $GITHUB_ENV + - name: get vars from url_info.txt file + run: | + ARTIFACT_ID=$(head -1 url_info.txt) + RUN_ID=$(sed -n '2p' url_info.txt) + OWNER=$(sed -n '3p' url_info.txt) + REPO_NAME=$(sed -n '4p' url_info.txt) + + echo "ARTIFACT_ID=$ARTIFACT_ID" >> $GITHUB_ENV + echo "RUN_ID=$RUN_ID" >> $GITHUB_ENV echo "OWNER=$OWNER" >> $GITHUB_ENV + echo "REPO_NAME=$REPO_NAME" >> $GITHUB_ENV + + - name: delete url-info artifact + uses: geekyeggo/delete-artifact@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + name: url-info - - name: update url in runner README + - name: update index.html with new merge artifact link run: | - start_delim="" - end_delim="" - - # remove current URL - sed -i "/$start_delim/,/$end_delim/d" README.md - - # add new URL - printf "$start_delim\n$ARTIFACT_URL\n$end_delim\n" >> README.md - - # merge script always runs on any PR, this ensures link is only updated after a PR is merged into SiEPIC - - name: commit and push changes to README if we are in SiEPIC repo + echo "New artifact URL: https://github.com/$OWNER/$REPO_NAME/actions/runs/$RUN_ID/artifacts/$ARTIFACT_ID" + sed -i 's|URL=https://github.com/'"$OWNER"'/'"$REPO_NAME"'/actions/runs/.*|URL=https://github.com/'"$OWNER"'/'"$REPO_NAME"'/actions/runs/'"$RUN_ID"'/artifacts/'"$ARTIFACT_ID"'">|' index.html + sed -i 's|href="https://github.com/'"$OWNER"'/'"$REPO_NAME"'/actions/runs/.*|href="https://github.com/'"$OWNER"'/'"$REPO_NAME"'/actions/runs/'"$RUN_ID"'/artifacts/'"$ARTIFACT_ID"'">|' index.html + + # merge script always runs on any PR, the if statement ensures link is only updated after a PR is merged into SiEPIC + - name: push changes to gh-pages branch run: | - git diff - git config --local user.email "${{ github.actor }}@users.noreply.github.com" - git config --local user.name "${{ github.actor }}" - git add README.md - git commit -m "update README with new artifact url $ARTIFACT_URL" + git config user.name "${{ github.actor }}" + git config user.email "${{ github.actor }}@users.noreply.github.com" + git add index.html + git commit -m "Update index.html to redirect to new merge artifact url" git push if: ${{ github.repository_owner == 'SiEPIC'}} diff --git a/.github/workflows/run-verification.yml b/.github/workflows/run-verification.yml index 6a5428d7..4aa008d1 100644 --- a/.github/workflows/run-verification.yml +++ b/.github/workflows/run-verification.yml @@ -75,7 +75,7 @@ jobs: IFS=$'\n' # run verification on all files - for file in "$FILES"; do + for file in $FILES; do echo "Running verification on $file"