Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

リリース用ワークフローの作成 #129

Merged
merged 2 commits into from
May 31, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: release

# 'v0.0.0' 形式のtagがpushされたときに実行
on:
push:
tags:
- v*.*.*
branches-ignore:
- '**'

env:
IMAGE_NAME: traportfolio-ui

jobs:
# GitHubリリース機能で自動リリース
make-dist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: ./.node-version
cache: npm
- name: Node package install
run: npm ci
- name: Vite build
run: npm run build
env:
NODE_ENV: production
- name: Archive dist/
run: tar -zcvf ./dist.tar.gz ./dist
- name: Create Release and upload dist.tar.gz
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
generate_release_notes: true
files: dist.tar.gz

# ghcrにビルド済みイメージをアップロード
image:
name: Build Docker Image
runs-on: ubuntu-latest
steps:
- name: Set IMAGE_TAG env
run: echo IMAGE_TAG=$(echo ${GITHUB_REF:11}) >> $GITHUB_ENV

- uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Show available platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: traptitech
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/traptitech/${{ env.IMAGE_NAME }}:latest
ghcr.io/traptitech/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
cache-from: type=registry,ref=ghcr.io/traptitech/${{ env.IMAGE_NAME }}:buildcache
Loading