Minecraft Command Advent Calendar 2023 シリーズ3 21日目の記事です。
はじめに
データパックやリソースパックをGithub上で管理している方は多いでしょう。
Github Actionsを使うとメインのブランチにpushした際に自動的にzip化してリリースすることが可能です。
仕組み
リポジトリのファイルをzipファイルに圧縮
↓
zipファイルをリリース
使用するActions
ソースコードへのアクセスに必須です。
ファイルをzipに圧縮するのに使います。
リリースを行うのに使います。
手順
Github actionsを作成する際にmain.ymlに以下を貼り付けて保存します。
name: Create Archive
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@master
- name: Set Time
env:
TZ: 'Asia/Tokyo'
run: echo "CURRENT_DATETIME=$(date +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV
- run: echo "RELEASE_FILENAME=release_${{ env.CURRENT_DATETIME }}.zip" >> $GITHUB_ENV
- name: Archive Release
uses: thedoctor0/zip-release@main
with:
type: 'zip'
filename: ${{ env.RELEASE_FILENAME }}
exclusions: '*.git*'
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v0.1.15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.CURRENT_DATETIME }}
name: ${{ env.CURRENT_DATETIME }}
draft: false
prerelease: false
files: ${{ env.RELEASE_FILENAME }}
コード解説
ここではトリガーとなるブランチを指定します。
on:
push:
branches:
- main
ここでは日時を取得し、ファイル名を決定しています。
- name: Set Time
env:
TZ: 'Asia/Tokyo'
run: echo "CURRENT_DATETIME=$(date +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV
- run: echo "RELEASE_FILENAME=release_${{ env.CURRENT_DATETIME }}.zip" >> $GITHUB_ENV
ここではファイルをzipに圧縮しています。
- name: Archive Release
uses: thedoctor0/zip-release@main
with:
type: 'zip'
filename: ${{ env.RELEASE_FILENAME }}
exclusions: '*.git*'
ここではzipファイルをリリースしています。
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v0.1.15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.CURRENT_DATETIME }}
name: ${{ env.CURRENT_DATETIME }}
draft: false
prerelease: false
files: ${{ env.RELEASE_FILENAME }}
小技
ファイル名を固定すれば以下のようなURLでダウンロードリンクを固定できます。
https://github.com/ユーザー名/リポジトリ名/releases/download/latest/ファイル名