diff --git a/.github/workflows/behave_pull_request.yml b/.github/workflows/behave_pull_request.yml index 3b4066496d..a8f448cb9f 100644 --- a/.github/workflows/behave_pull_request.yml +++ b/.github/workflows/behave_pull_request.yml @@ -191,35 +191,75 @@ jobs: name: allure_partial_history_${{ matrix.python-version }} path: allure_partial_history_${{ matrix.python-version }}.tar - # Deploy only on schedule + master branch deploy: name: Deploy Reports runs-on: ubuntu-latest permissions: contents: write - + needs: report steps: + # Checkout the repository to work with the git history + - name: Checkout repository + uses: actions/checkout@v4 + # Download Full Artifacts - uses: actions/download-artifact@v4 name: Download Full Artifacts with: name: allure_partial_history_3.12 path: allure-history/tars - - - name: Untar reports - run: for i in allure-history/tars/*.tar; do tar -xvf "$i" allure-history-partial ;done - + + - name: Display structure of downloaded files + run: ls -R + + - name: Display directory + run: pwd + + # Untar reports into a temporary directory + - name: Untar reports to temporary directory + run: | + mkdir -p temp_extracted # Create a temporary directory for untarring + for i in allure-history/tars/*.tar; do + tar -xvf "$i" -C temp_extracted # Untar into the temporary directory + done + + # Move the files from the correct location and delete unnecessary folders + - name: Move files to the correct location + run: | + mkdir -p 3.12/partial # Ensure the target directory exists + mv temp_extracted/allure-history-partial/3.12/partial/* 3.12/partial/ # Move files to the target directory + rm -rf temp_extracted # Clean up the temporary extraction folder + + # Remove the tar reports - name: Remove tar reports run: rm -rf allure-history/tars - - - name: Display structure of downloaded files + + # Display structure after untarring and moving + - name: Display structure of moved files run: ls -R - - - name: Deploy - uses: peaceiris/actions-gh-pages@v4 - with: - personal_token: ${{ secrets.GH_PAGES_TOKEN }} - publish_branch: gh-pages - publish_dir: ./allure-history-partial - keep_files: true + + # Set up Git for pushing changes + - name: Set up Git + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + # Authenticate using the personal access token (GH_PAGES_TOKEN) + - name: Authenticate with GH_PAGES_TOKEN + run: | + git remote set-url origin https://x-access-token:${{ secrets.GH_PAGES_TOKEN }}@github.com/${{ github.repository }}.git + + # Pull the latest changes from gh-pages and switch to the gh-pages branch + - name: Pull latest changes from gh-pages + run: | + git fetch origin + git checkout gh-pages + git pull origin gh-pages + + # Commit and push changes to gh-pages + - name: Commit and push changes to gh-pages + run: | + git add . + git commit -m "Deploy reports to gh-pages" + git push origin gh-pages diff --git a/.github/workflows/behave_schedule.yml b/.github/workflows/behave_schedule.yml index 2da323c8b7..795b89a53d 100644 --- a/.github/workflows/behave_schedule.yml +++ b/.github/workflows/behave_schedule.yml @@ -182,29 +182,70 @@ jobs: runs-on: ubuntu-latest permissions: contents: write - + needs: report steps: + # Checkout the repository to work with the git history + - name: Checkout repository + uses: actions/checkout@v4 + # Download Full Artifacts - uses: actions/download-artifact@v4 name: Download Full Artifacts with: name: allure_full_history_3.12 path: allure-history/tars - - - name: Untar reports - run: for i in allure-history/tars/*.tar; do tar -xvf "$i" allure-history-full ;done - + + - name: Display structure of downloaded files + run: ls -R + + - name: Display directory + run: pwd + + # Untar reports into a temporary directory + - name: Untar reports to temporary directory + run: | + mkdir -p temp_extracted # Create a temporary directory for untarring + for i in allure-history/tars/*.tar; do + tar -xvf "$i" -C temp_extracted # Untar into the temporary directory + done + + # Move the files from the correct location and delete unnecessary folders + - name: Move files to the correct location + run: | + mkdir -p 3.12/full # Ensure the target directory exists + mv temp_extracted/allure-history-full/3.12/full/* 3.12/full/ # Move files to the target directory + rm -rf temp_extracted # Clean up the temporary extraction folder + + # Remove the tar reports - name: Remove tar reports run: rm -rf allure-history/tars - - - name: Display structure of downloaded files + + # Display structure after untarring and moving + - name: Display structure of moved files run: ls -R - - - name: Deploy - uses: peaceiris/actions-gh-pages@v4 - with: - personal_token: ${{ secrets.GH_PAGES_TOKEN }} - publish_branch: gh-pages - publish_dir: ./allure-history-full - keep_files: true + + # Set up Git for pushing changes + - name: Set up Git + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + # Authenticate using the personal access token (GH_PAGES_TOKEN) + - name: Authenticate with GH_PAGES_TOKEN + run: | + git remote set-url origin https://x-access-token:${{ secrets.GH_PAGES_TOKEN }}@github.com/${{ github.repository }}.git + + # Pull the latest changes from gh-pages and switch to the gh-pages branch + - name: Pull latest changes from gh-pages + run: | + git fetch origin + git checkout gh-pages + git pull origin gh-pages + + # Commit and push changes to gh-pages + - name: Commit and push changes to gh-pages + run: | + git add . + git commit -m "Deploy reports to gh-pages" + git push origin gh-pages diff --git a/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py b/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py index dc8225010b..b38e8dc015 100644 --- a/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +++ b/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py @@ -10,6 +10,7 @@ class CouncilClass(AbstractGetBinDataClass): """ A class to fetch and parse bin collection data for Cheshire East Council. """ + def parse_data(self, page: Any, **kwargs: Any) -> Dict[str, Any]: soup = BeautifulSoup(page.text, features="html.parser") @@ -18,6 +19,7 @@ def parse_data(self, page: Any, **kwargs: Any) -> Dict[str, Any]: table: Optional[Tag | NavigableString] = soup.find( "table", {"class": "job-details"} ) + if isinstance(table, Tag): # Ensure we only proceed if 'table' is a Tag rows = table.find_all("tr", {"class": "data-row"})