LoginSignup
5
0

データパックをGithub Actionsで自動zipリリース

Last updated at Posted at 2023-12-21

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/ファイル名
5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0