Skip to content

AUTOMATED: Format, lint, and check #32

AUTOMATED: Format, lint, and check

AUTOMATED: Format, lint, and check #32

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will install Deno then run `deno lint` and `deno test`.
# For more information see: https://github.com/denoland/setup-deno
name: Checks
on:
push:
branches: ['main']
pull_request:
branches: ['main']
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Retrieve git dependencies
uses: actions/checkout@v3
with:
submodules: 'true'
token: ${{ secrets.GH_TOKEN }}
- name: Ignore if changes were automated
run: |
- name: Setup Deno
# uses: denoland/setup-deno@v1
uses: denoland/setup-deno@61fe2df320078202e33d7d5ad347e7dcfa0e8f31 # v1.1.2
with:
deno-version: v1.x
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 16
- name: Stash current dependencies
run: |
echo "Rename package.json and package-lock.json to .package.json and .package-lock.json so that they are not picked up by npm install"
mv package.json .package.json
mv package-lock.json .package-lock.json
- name: Install local dependencies
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
npm i --save-dev --force prettier-plugin-svelte prettier @typescript-eslint/parser @typescript-eslint/[email protected] eslint typescript prettier-plugin-svelte svelte
- name: Install global dependencies
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
npm i -g eslint prettier svelte
- name: Import submodules
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
git submodule update --init --recursive --remote
- name: Run Formatter, Linter, then Checks
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
sh ./scripts/fmt-lint-check.sh
- name: Restore dependencies
run: |
echo "Restore package.json and package-lock.json to their original names"
rm package.json package-lock.json
mv .package.json package.json
mv .package-lock.json package-lock.json
- name: Git Config
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Push results
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
echo "Adding changes..."
git add .
echo "Committing changes..."
git commit --allow-empty -m "AUTOMATED: Format, lint, and check"
echo "Pushing changes..."
git push origin main
- name: Push to deliver
run: |
echo "testing if on branch 'main'"
if [ "$(git rev-parse --abbrev-ref HEAD)" != "main" ]; then
echo "not on branch 'main', exiting"
exit 0
fi
echo "Good, we're on main. Pushing to deliver..."
echo "Deleting old deliver branch"
git branch -D deliver || true
git push origin --delete deliver || true
echo "Creating new deliver branch"
git checkout --orphan deliver
git reset --hard
git commit --allow-empty -m "Initializing deliver branch"
echo "Merging main into deliver"
git merge main --strategy-option=theirs --allow-unrelated-histories -m "Merging main into gh-pages"
git pull origin main --allow-unrelated-histories
git add .
git commit --allow-empty -m "Merging main into deliver"
git push origin deliver