AUTOMATED: Format, lint, and check #38
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
# 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 |