Skip to content

Tweak

Tweak #10

name: Sync test fixtures
on:
push:
branches:
- "spike/pull-fixtures"
workflow_dispatch:
jobs:
sync_fixtures:
name: Sync test fixtures
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
bundler-cache: true
- name: Sync fixtures
run: |
TMP_DIR=$(mktemp -d)
curl -fsSL "https://codeload.github.com/dnsimple/dnsimple-developer/tar.gz/refs/heads/main" \
| tar -xz -C "$TMP_DIR"
pwd
ls -al $TMP_DIR
ls -al "$TMP_DIR/dnsimple-developer-main/"
ls -al spec/fixtures.http/
rsync -a --delete "$TMP_DIR/dnsimple-developer-main/fixtures/v2/api/" spec/fixtures.http/
ls -al spec/fixtures.http/
- name: Create a PR to sync fixtures if there are changes
run: |
# Configure Git identity for the workflow
git config --global user.name "github-actions"
git config --global user.email "github-actions@github.com"
# Create and switch to a new branch
BRANCH="chore/sync-fixtures-${GITHUB_RUN_ID}"
NOW="$(date +'%Y-%m-%d %H:%M:%S')""
git checkout -b "$BRANCH"
# Stage changes
git add spec/fixtures.http
# Commit if there are staged changes
if ! git diff --cached --quiet; then
git commit -m "chore: sync test fixtures as of $NOW"
git push -u origin "$BRANCH"
gh pr create \
--title "chore: Sync fixtures as of $NOW" \
--body "This PR replaces the fixtures in this repository with those from dnsimple-developer" \
--base main \
--head "$BRANCH"
else
echo "No fixture detected; nothing to do"
fi
env:
GITHUB_TOKEN: ${{ github.token }}