Merge pull request #83 from richardadonnell/1.49 #19
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
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: | | |
# Start fresh - remove any existing files | |
rm -rf temp releases | |
# Create our directory structure | |
mkdir -p releases | |
mkdir -p temp | |
# 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 | |
) | |
# First, create our target directory structure | |
mkdir -p "temp/upwork-job-scraper" | |
# Copy files to the correct location | |
echo "Copying files..." | |
for file in "${files[@]}"; do | |
if [[ -f "upwork-job-scraper/$file" ]]; then | |
cp "upwork-job-scraper/$file" "temp/upwork-job-scraper/" | |
echo "✓ Copied $file" | |
else | |
echo "❌ Error: upwork-job-scraper/$file does not exist." | |
exit 1 | |
fi | |
done | |
# Create the zip file - IMPORTANT: We're in the root and specifically targeting the folder | |
echo "Creating zip file..." | |
(cd temp && zip -r "../releases/upwork-job-scraper-${{ env.version_tag }}.zip" "upwork-job-scraper") | |
# Verify zip contents | |
echo "Verifying zip contents..." | |
unzip -l "releases/upwork-job-scraper-${{ env.version_tag }}.zip" | |
# Clean up | |
rm -rf 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 |