ci(nextjs): configure Next.js build cache (#1463) [skip ci]
https://nextjs.org/docs/messages/no-cache#github-actions Co-authored-by: sct <ryan@sct.dev>
This commit is contained in:
13
.github/workflows/ci.yml
vendored
13
.github/workflows/ci.yml
vendored
@@ -14,15 +14,20 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
container: node:14.16-alpine
|
container: node:14.16-alpine
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: install dependencies
|
- name: Use Next.js cache
|
||||||
|
uses: actions/cache@v2.1.5
|
||||||
|
with:
|
||||||
|
path: ${{ github.workspace }}/.next/cache
|
||||||
|
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package.json') }}
|
||||||
|
- name: Install dependencies
|
||||||
env:
|
env:
|
||||||
HUSKY_SKIP_INSTALL: 1
|
HUSKY_SKIP_INSTALL: 1
|
||||||
run: yarn
|
run: yarn
|
||||||
- name: lint
|
- name: Lint
|
||||||
run: yarn lint
|
run: yarn lint
|
||||||
- name: build
|
- name: Build
|
||||||
run: yarn build
|
run: yarn build
|
||||||
|
|
||||||
build_and_push:
|
build_and_push:
|
||||||
|
|||||||
24
.github/workflows/release.yml
vendored
24
.github/workflows/release.yml
vendored
@@ -11,16 +11,22 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
container: node:14.16-alpine
|
container: node:14.16-alpine
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: install dependencies
|
- name: Use Next.js cache
|
||||||
|
uses: actions/cache@v2.1.5
|
||||||
|
with:
|
||||||
|
path: ${{ github.workspace }}/.next/cache
|
||||||
|
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package.json') }}
|
||||||
|
- name: Install dependencies
|
||||||
env:
|
env:
|
||||||
HUSKY_SKIP_INSTALL: 1
|
HUSKY_SKIP_INSTALL: 1
|
||||||
run: yarn
|
run: yarn
|
||||||
- name: lint
|
- name: Lint
|
||||||
run: yarn lint
|
run: yarn lint
|
||||||
- name: build
|
- name: Build
|
||||||
run: yarn build
|
run: yarn build
|
||||||
|
|
||||||
semantic-release:
|
semantic-release:
|
||||||
name: Tag and release latest version
|
name: Tag and release latest version
|
||||||
needs: test
|
needs: test
|
||||||
@@ -57,6 +63,7 @@ jobs:
|
|||||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
run: npx semantic-release
|
run: npx semantic-release
|
||||||
|
|
||||||
build-snap:
|
build-snap:
|
||||||
name: Build Snap Package (${{ matrix.architecture }})
|
name: Build Snap Package (${{ matrix.architecture }})
|
||||||
needs: semantic-release
|
needs: semantic-release
|
||||||
@@ -77,7 +84,6 @@ jobs:
|
|||||||
run: git checkout master
|
run: git checkout master
|
||||||
- name: Pull latest changes
|
- name: Pull latest changes
|
||||||
run: git pull
|
run: git pull
|
||||||
|
|
||||||
- name: Prepare
|
- name: Prepare
|
||||||
id: prepare
|
id: prepare
|
||||||
run: |
|
run: |
|
||||||
@@ -87,35 +93,31 @@ jobs:
|
|||||||
else
|
else
|
||||||
echo ::set-output name=RELEASE::edge
|
echo ::set-output name=RELEASE::edge
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Set Up QEMU
|
- name: Set Up QEMU
|
||||||
uses: docker/setup-qemu-action@v1
|
uses: docker/setup-qemu-action@v1
|
||||||
with:
|
with:
|
||||||
image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde
|
image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde
|
||||||
|
|
||||||
- name: Build Snap Package
|
- name: Build Snap Package
|
||||||
uses: diddlesnaps/snapcraft-multiarch-action@v1
|
uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||||
id: build
|
id: build
|
||||||
with:
|
with:
|
||||||
architecture: ${{ matrix.architecture }}
|
architecture: ${{ matrix.architecture }}
|
||||||
|
|
||||||
- name: Upload Snap Package
|
- name: Upload Snap Package
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: overseerr-snap-package-${{ matrix.architecture }}
|
name: overseerr-snap-package-${{ matrix.architecture }}
|
||||||
path: ${{ steps.build.outputs.snap }}
|
path: ${{ steps.build.outputs.snap }}
|
||||||
|
|
||||||
- name: Review Snap Package
|
- name: Review Snap Package
|
||||||
uses: diddlesnaps/snapcraft-review-tools-action@v1.2.0
|
uses: diddlesnaps/snapcraft-review-tools-action@v1.2.0
|
||||||
with:
|
with:
|
||||||
snap: ${{ steps.build.outputs.snap }}
|
snap: ${{ steps.build.outputs.snap }}
|
||||||
|
|
||||||
- name: Publish Snap Package
|
- name: Publish Snap Package
|
||||||
uses: snapcore/action-publish@v1
|
uses: snapcore/action-publish@v1
|
||||||
with:
|
with:
|
||||||
store_login: ${{ secrets.SNAP_LOGIN }}
|
store_login: ${{ secrets.SNAP_LOGIN }}
|
||||||
snap: ${{ steps.build.outputs.snap }}
|
snap: ${{ steps.build.outputs.snap }}
|
||||||
release: ${{ steps.prepare.outputs.RELEASE }}
|
release: ${{ steps.prepare.outputs.RELEASE }}
|
||||||
|
|
||||||
discord:
|
discord:
|
||||||
name: Send Discord Notification
|
name: Send Discord Notification
|
||||||
needs: semantic-release
|
needs: semantic-release
|
||||||
@@ -124,7 +126,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Get Build Job Status
|
- name: Get Build Job Status
|
||||||
uses: technote-space/workflow-conclusion-action@v2.1.5
|
uses: technote-space/workflow-conclusion-action@v2.1.5
|
||||||
|
|
||||||
- name: Combine Job Status
|
- name: Combine Job Status
|
||||||
id: status
|
id: status
|
||||||
run: |
|
run: |
|
||||||
@@ -134,7 +135,6 @@ jobs:
|
|||||||
else
|
else
|
||||||
echo ::set-output name=status::$WORKFLOW_CONCLUSION
|
echo ::set-output name=status::$WORKFLOW_CONCLUSION
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Post Status to Discord
|
- name: Post Status to Discord
|
||||||
uses: sarisia/actions-status-discord@v1
|
uses: sarisia/actions-status-discord@v1
|
||||||
with:
|
with:
|
||||||
|
|||||||
13
.github/workflows/snap.yaml
vendored
13
.github/workflows/snap.yaml
vendored
@@ -22,15 +22,20 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
container: node:14.16-alpine
|
container: node:14.16-alpine
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: install dependencies
|
- name: Cache Next.js build
|
||||||
|
uses: actions/cache@v2.1.5
|
||||||
|
with:
|
||||||
|
path: ${{ github.workspace }}/.next/cache
|
||||||
|
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package.json') }}
|
||||||
|
- name: Install dependencies
|
||||||
env:
|
env:
|
||||||
HUSKY_SKIP_INSTALL: 1
|
HUSKY_SKIP_INSTALL: 1
|
||||||
run: yarn
|
run: yarn
|
||||||
- name: lint
|
- name: Lint
|
||||||
run: yarn lint
|
run: yarn lint
|
||||||
- name: build
|
- name: Build
|
||||||
run: yarn build
|
run: yarn build
|
||||||
|
|
||||||
build-snap:
|
build-snap:
|
||||||
|
|||||||
Reference in New Issue
Block a user