Skip to content

Merge pull request #75 from richardadonnell/1.49 #11

Merge pull request #75 from richardadonnell/1.49

Merge pull request #75 from richardadonnell/1.49 #11

Workflow file for this run

name: Create Release Zip
on:
push:
branches:
- main
workflow_dispatch: # Allow manual triggering
jobs:
create-zip:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Check out code
uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history to get merge commit info
- name: Get branch name
id: vars
run: |
if [[ ${{ github.event_name }} == 'push' ]]; then
# Get the merge commit message
COMMIT_MSG=$(git log -1 --pretty=%B)
# Check if this is a PR merge
if [[ $COMMIT_MSG == "Merge pull request"* ]]; then
# Extract branch name from the merge commit message
BRANCH_NAME=$(git log -1 --pretty=%B | grep -o "from.*" | cut -d'/' -f2 | tr -d "'")
if [[ ! -z "$BRANCH_NAME" ]]; then
echo "version_tag=$BRANCH_NAME" >> $GITHUB_ENV
echo "Found branch name: $BRANCH_NAME"
else
# Fallback to commit SHA if branch name not found
echo "version_tag=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "Using commit SHA as fallback"
fi
else
# Not a PR merge, use commit SHA
echo "version_tag=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "Using commit SHA (not a PR merge)"
fi
else
# For manual triggers, use timestamp
echo "version_tag=$(date +'%Y%m%d_%H%M%S')" >> $GITHUB_ENV
echo "Using timestamp (manual trigger)"
fi
- name: List files in repository
run: |
echo "Contents of upwork-job-scraper directory:"
ls -al upwork-job-scraper/
- name: Create a zip file with specific files
run: |
# Create directories
mkdir -p releases
mkdir -p upwork-job-scraper-temp/upwork-job-scraper
# Debug: Print current directory and structure
echo "Current directory structure:"
pwd
ls -la
files=(
activityLog.js
background.js
errorHandling.js
icon128.png
icon48.png
jobScraping.js
manifest.json
notifications.js
sentry-init.js
sentry.js
settings.css
settings.html
settings.js
utils.js
webhook.js
)
# Copy files to temporary directory inside the upwork-job-scraper subfolder
echo "Copying files..."
for file in "${files[@]}"; do
if [[ -f "upwork-job-scraper/$file" ]]; then
cp "upwork-job-scraper/$file" upwork-job-scraper-temp/upwork-job-scraper/
echo "✓ Copied $file"
else
echo "❌ Error: upwork-job-scraper/$file does not exist."
exit 1
fi
done
# Create zip from the parent temp directory to include the subfolder
echo "Creating zip file..."
cd upwork-job-scraper-temp
zip -r "../releases/upwork-job-scraper-${{ env.version_tag }}.zip" .
cd ..
# Debug: Show contents of releases directory
echo "Contents of releases directory:"
ls -la releases/
# Clean up temp directory
rm -rf upwork-job-scraper-temp
echo "✓ Zip file created successfully in releases folder"
- name: Commit and push releases folder
run: |
# Debug: Show git status
echo "Git status before commit:"
git status
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
# Force add the releases directory
git add -f releases/
# Debug: Show git status after add
echo "Git status after add:"
git status
# Only commit if there are changes
if git diff --staged --quiet; then
echo "No changes to commit"
else
git commit -m "Add release zip for version ${{ env.version_tag }}"
git push
fi
- name: Upload zip file as artifact
uses: actions/upload-artifact@v3
with:
name: "upwork-job-scraper-${{ env.version_tag }}"
path: "releases/upwork-job-scraper-${{ env.version_tag }}.zip"
retention-days: 5 # Keep artifacts for 5 days