This repository has been archived by the owner on Dec 25, 2024. It is now read-only.
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: Build Docker Image | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
jobs: | |
ImageBuild: | |
name: Build Walnuts.dev Docker Image | |
runs-on: ubuntu-latest | |
steps: | |
- name: Slack notification of build start | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_USERNAME: GitHub Actions | |
SLACK_COLOR: "#4381de" | |
SLACK_ICON: "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" | |
SLACK_TITLE: Start Walnuts.dev image build | |
SLACK_MESSAGE: | | |
Run number : #${{ github.run_number }} | |
- name: Check out | |
uses: actions/checkout@v3 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: walnuts1018 | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/[email protected] | |
with: | |
version: latest | |
- name: setup-node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Cache node_modules | |
id: node_modules_cache_id | |
env: | |
cache-name: cache-node-modules | |
uses: actions/cache@v3 | |
with: | |
path: "front/node_modules" | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('front/package-lock.json') }} | |
- name: install | |
working-directory: ./front | |
run: npm install | |
- name: build | |
working-directory: ./front | |
run: npm run build | |
- name: Build and push Docker images | |
uses: docker/[email protected] | |
with: | |
push: true | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
tags: | | |
ghcr.io/walnuts1018/walnuts.dev:latest | |
ghcr.io/walnuts1018/walnuts.dev:${{ github.sha }}-${{ github.run_number }} | |
SucceessNotification: | |
if: ${{ success() }} | |
name: Send Success Message | |
needs: [ImageBuild] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Send Message to Slack | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_USERNAME: GitHub Actions | |
SLACK_ICON: "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" | |
SLACK_TITLE: Walnuts.dev image build succeeded | |
SLACK_MESSAGE: | | |
Image: Walnuts.dev | |
Run number : #${{ github.run_number }} | |
FailureAlert: | |
if: ${{ failure() }} | |
name: Notify failure | |
needs: [ImageBuild] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Send Failure Alert to Slack | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_USERNAME: GitHub Actions | |
SLACK_ICON: "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" | |
SLACK_TITLE: Walnuts.dev image build failed | |
SLACK_COLOR: danger | |
SLACK_MESSAGE: | | |
Image: Walnuts.dev | |
Run number : #${{ github.run_number }} |