Go to file
2022-10-09 22:05:57 -05:00
.github/workflows remove '.git*' instead of '.github*' from the resulting pyromod, fix test (#4) 2022-10-08 14:09:24 -05:00
test add optional 'directory' argument (and add ci test) (#2) 2022-10-08 13:14:28 -05:00
.gitmodules add optional 'directory' argument (and add ci test) (#2) 2022-10-08 13:14:28 -05:00
action.yml add optional 'directory' argument (and add ci test) (#2) 2022-10-08 13:14:28 -05:00
ChangeLog release v1.3.1 [skip ci] 2022-10-09 11:04:29 -05:00
COPYING initial commit 2022-09-22 23:17:52 -05:00
Dockerfile use package_mod, reduce size of action download 2022-10-05 17:42:14 -05:00
entrypoint.sh remove '.git*' instead of '.github*' from the resulting pyromod, fix test (#4) 2022-10-08 14:09:24 -05:00
README.md README.md:remove duplicate declaration of MOD_NAME 2022-10-09 22:05:57 -05:00

GitHub Action to build a 0ad pyromod file

This is a GitHub Action that will build a 0ad pyromod.

Usage

If your mod is not in the root directory of your repository, you can add the 'directory' argument (see option table below) after 'with:' to specify the relative path.

The example shown below has two separate jobs:

  1. When there is a push to the default branch, or when a pull request is opened or updated, the pyromod is built and is uploaded to the workflow output page.

  2. When a new a new tag is created (if the tag starts with a 'v'), the built mod will get uploaded to the release page, along with a corresponding sha256sum.

This file needs to be placed in

<your_repo_root>/.github/workflows/<filename>.yml

(where <filename> can be anything you like)

The release action used in the example below is a separate action (not maintained by this project) and can be replaced by a different release action if you like.

name: Build Pyromod

on:
  push:
    branches:
      - main
    tags:
      - v**
  pull_request:
    branches:
      - main

env:
  MOD_NAME: <your-mod>

jobs:
  build-pyromod:
    if: ${{ github.ref_type != 'tag' }}
    runs-on: ubuntu-latest
    env:
      MOD_VERSION: ${{ github.sha }}
    steps:
    - uses: actions/checkout@v3
    - uses: 0ad-matters/gh-action-build-pyromod@v1
      with:
        name: ${{ env.MOD_NAME }}
        version: ${{ env.MOD_VERSION }}
      id: build-pyromod
    - name: Upload Artifacts
      # Uploads artifacts (combined into a zip file) to the workflow output page
      uses: actions/upload-artifact@v3
      with:
        name: ${{ env.MOD_NAME }}-${{ env.MOD_VERSION }}
        path: "output/${{ env.MOD_NAME }}*.*"

  release-pyromod:
    if: ${{ github.ref_type == 'tag' }}
    runs-on: ubuntu-latest
    env:
      MOD_VERSION: ${{ github.ref_name }}
    steps:
    - uses: actions/checkout@v3
    - name: Massage Variables
      run: |
        echo "MOD_VERSION=${MOD_VERSION:1}" >> $GITHUB_ENV        
    - uses:  0ad-matters/gh-action-build-pyromod@v1
      with:
        name: ${{ env.MOD_NAME }}
        version: ${{ env.MOD_VERSION }}
      id: build-pyromod
    - name: Create sha256sum
      run:  |
        OUTPUT_FILE="$MOD_NAME-$MOD_VERSION.pyromod"
        cd output
        sha256sum $OUTPUT_FILE > $OUTPUT_FILE.sha256sum        
    - name: Release PyroMod
      uses: ncipollo/release-action@v1
      with:
        allowUpdates: True
        prerelease: False
        artifacts: "output/${{ env.MOD_NAME }}*.*"
        token: ${{ secrets.GITHUB_TOKEN }}
        omitNameDuringUpdate: True
        omitBodyDuringUpdate: True

Option table

name required default
name true ''
version true ''
directory (where mod.json is located false '.'

Additional Notes

Option table

The docker image used by this action is published from 0ad-matters/0ad-bin-nodata and pulled from andy5995/0ad-bin-nodata.