Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/coolgirl-multirom-builder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-12-04 17:37:33 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-12-04 17:37:33 +0300
commit7a4bf75be6b71fe73d5675c77230a392656ef437 (patch)
treed71aca74fd96d9eec3505b9e4093f793b9827bff
parent1b9b24a52ba3e41ddbe661d5c84e9508716bb55b (diff)
Pipeline
-rw-r--r--.github/workflows/build.yaml6
-rw-r--r--.github/workflows/release.yaml309
2 files changed, 312 insertions, 3 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 03b0449..bc57c39 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -32,7 +32,7 @@ jobs:
- name: Copy main files
run: >-
mkdir -p ${{ env.OUTPUT_DIR }} &&
- cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* output
+ cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* ${{ env.OUTPUT_DIR }}
- name: Build CoolgirlCombiner for Linux-x64
env:
SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
@@ -120,7 +120,7 @@ jobs:
- name: Copy main files
run: >-
mkdir -p ${{ env.OUTPUT_DIR }} &&
- cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* output
+ cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* ${{ env.OUTPUT_DIR }}
- name: Build CoolgirlCombiner for MacOS-x64
env:
SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
@@ -174,7 +174,7 @@ jobs:
shell: msys2 {0}
run: >-
mkdir -p ${{ env.OUTPUT_DIR }} &&
- cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* *.bat output
+ cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* *.bat ${{ env.OUTPUT_DIR }}
- name: Build CoolgirlCombiner for Win-x64
env:
SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
new file mode 100644
index 0000000..3d7a077
--- /dev/null
+++ b/.github/workflows/release.yaml
@@ -0,0 +1,309 @@
+name: Release
+
+on:
+ workflow_dispatch:
+
+jobs:
+ create-release:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Create Release
+ id: create_release
+ uses: ncipollo/release-action@v1
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ tag: ${{ github.event.repository.updated_at }}
+ commit: ${{ github.head_ref || github.ref_name }}
+ name: Release ${{ github.event.repository.updated_at }}
+ draft: true
+ - name: Output Release URL File
+ run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
+ - name: Save Release URL File for publish
+ uses: actions/upload-artifact@v3
+ with:
+ name: release_url
+ path: release_url.txt
+
+ build-linux:
+ needs: create-release
+ strategy:
+ matrix:
+ sc: [no-self-contained, self-contained]
+ runs-on: ubuntu-latest
+ env:
+ APP_NAME: coolgirl-multirom-builder
+ OUTPUT_DIR: coolgirl-multirom-builder
+ TOOLS_DIR: coolgirl-multirom-builder/tools
+ OUTPUT_FILE_X64: coolgirl-multirom-builder-linux-x64${{ matrix.sc == 'self-contained' && '-self-contained' || '' }}.tar.gz
+ OUTPUT_FILE_ARM32: coolgirl-multirom-builder-linux-arm32${{ matrix.sc == 'self-contained' && '-self-contained' || '' }}.tar.gz
+ OUTPUT_FILE_ARM64: coolgirl-multirom-builder-linux-arm64${{ matrix.sc == 'self-contained' && '-self-contained' || '' }}.tar.gz
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v2
+ with:
+ dotnet-version: 6.0.x
+ - name: Get ARM toolchain
+ run: sudo apt-get install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu
+ - name: Copy main files
+ run: >-
+ mkdir -p ${{ env.OUTPUT_DIR }} &&
+ cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* ${{ env.OUTPUT_DIR }}
+ - name: Load Release URL File from release job
+ uses: actions/download-artifact@v1
+ with:
+ name: release_url
+ - name: Get Release File Name & Upload URL
+ id: get_release_info
+ env:
+ TAG_REF_NAME: ${{ github.event.repository.updated_at }}
+ REPOSITORY_NAME: ${{ github.repository }}
+ run: |
+ value=`cat release_url/release_url.txt`
+ echo upload_url=$value >> $GITHUB_OUTPUT
+ - name: Build CoolgirlCombiner for Linux-x64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/CoolgirlCombiner -c Release -r linux-x64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build NesTiler for Linux-x64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/NesTiler/NesTiler -c Release -r linux-x64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build nesasm for Linux-x64
+ run: make -C tools_sources/nesasm/source EXEDIR=../../../${{ env.TOOLS_DIR }}
+ - name: Remove unnecessary files
+ run: rm -f ${{ env.TOOLS_DIR }}/*.md
+ - name: Test build
+ run: make -C ${{ env.OUTPUT_DIR }} all
+ - name: Clean
+ run: make -C ${{ env.OUTPUT_DIR }} clean
+ - name: Archive
+ env:
+ CMD: tar -czvf
+ run: |
+ ${{ env.CMD }} ${{ env.OUTPUT_FILE_X64 }} ${{ env.OUTPUT_DIR }}
+ - name: Upload
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.get_release_info.outputs.upload_url }}
+ asset_path: ${{ env.OUTPUT_FILE_X64 }}
+ asset_name: ${{ env.OUTPUT_FILE_X64 }}
+ asset_content_type: tar.gz
+ - name: Clean
+ run: >-
+ rm -f ${{ env.TOOLS_DIR }}/* &&
+ make -C tools_sources/nesasm/source clean
+ - name: Build CoolgirlCombiner for Linux-ARM32
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/CoolgirlCombiner -c Release -r linux-arm -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build NesTiler for Linux-ARM32
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/NesTiler/NesTiler -c Release -r linux-arm -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build nesasm for Linux-ARM32
+ run: make -C tools_sources/nesasm/source EXEDIR=../../../${{ env.TOOLS_DIR }} CC=arm-linux-gnueabihf-gcc
+ - name: Remove unnecessary files
+ run: rm -f ${{ env.TOOLS_DIR }}/*.md
+ - name: Archive
+ env:
+ CMD: tar -czvf
+ run: |
+ ${{ env.CMD }} ${{ env.OUTPUT_FILE_ARM32 }} ${{ env.OUTPUT_DIR }}
+ - name: Upload
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.get_release_info.outputs.upload_url }}
+ asset_path: ${{ env.OUTPUT_FILE_ARM32 }}
+ asset_name: ${{ env.OUTPUT_FILE_ARM32 }}
+ asset_content_type: tar.gz
+ - name: Clean
+ run: >-
+ rm -f ${{ env.TOOLS_DIR }}/* &&
+ make -C tools_sources/nesasm/source clean
+ - name: Build CoolgirlCombiner for Linux-ARM64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/CoolgirlCombiner -c Release -r linux-arm64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build NesTiler for Linux-ARM64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/NesTiler/NesTiler -c Release -r linux-arm64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build nesasm for Linux-ARM64
+ run: make -C tools_sources/nesasm/source EXEDIR=../../../${{ env.TOOLS_DIR }} CC=aarch64-linux-gnu-gcc
+ - name: Remove unnecessary files
+ run: rm -f ${{ env.TOOLS_DIR }}/*.md
+ - name: Archive
+ env:
+ CMD: tar -czvf
+ run: |
+ ${{ env.CMD }} ${{ env.OUTPUT_FILE_ARM64 }} ${{ env.OUTPUT_DIR }}
+ - name: Upload
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.get_release_info.outputs.upload_url }}
+ asset_path: ${{ env.OUTPUT_FILE_ARM64 }}
+ asset_name: ${{ env.OUTPUT_FILE_ARM64 }}
+ asset_content_type: tar.gz
+
+ build-macos:
+ needs: create-release
+ strategy:
+ matrix:
+ sc: [no-self-contained, self-contained]
+ runs-on: macos-latest
+ env:
+ APP_NAME: coolgirl-multirom-builder
+ OUTPUT_DIR: coolgirl-multirom-builder
+ TOOLS_DIR: coolgirl-multirom-builder/tools
+ OUTPUT_FILE: coolgirl-multirom-builder-osx-x64${{ matrix.sc == 'self-contained' && '-self-contained' || '' }}.tar.gz
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v2
+ with:
+ dotnet-version: 6.0.x
+ - name: Setup argp
+ run: brew install argp-standalone
+ - name: Copy main files
+ run: >-
+ mkdir -p ${{ env.OUTPUT_DIR }} &&
+ cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* ${{ env.OUTPUT_DIR }}
+ - name: Build CoolgirlCombiner for MacOS-x64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/CoolgirlCombiner -c Release -r osx-x64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build NesTiler for MacOS-x64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/NesTiler/NesTiler -c Release -r osx-x64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build nesasm for MacOS-x64
+ run: make -C tools_sources/nesasm/source EXEDIR=../../../${{ env.TOOLS_DIR }}
+ - name: Remove unnecessary files
+ run: rm -f ${{ env.TOOLS_DIR }}/*.md
+ - name: Test build
+ run: make -C ${{ env.OUTPUT_DIR }} all
+ - name: Clean
+ run: make -C ${{ env.OUTPUT_DIR }} clean
+ - name: Archive
+ env:
+ CMD: tar -czvf
+ run: |
+ ${{ env.CMD }} ${{ env.OUTPUT_FILE }} ${{ env.OUTPUT_DIR }}
+ - name: Load Release URL File from release job
+ uses: actions/download-artifact@v1
+ with:
+ name: release_url
+ - name: Get Release File Name & Upload URL
+ id: get_release_info
+ env:
+ TAG_REF_NAME: ${{ github.event.repository.updated_at }}
+ REPOSITORY_NAME: ${{ github.repository }}
+ run: |
+ value=`cat release_url/release_url.txt`
+ echo upload_url=$value >> $GITHUB_OUTPUT
+ - name: Upload
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.get_release_info.outputs.upload_url }}
+ asset_path: ${{ env.OUTPUT_FILE }}
+ asset_name: ${{ env.OUTPUT_FILE }}
+ asset_content_type: tar.gz
+
+ build-windows:
+ needs: create-release
+ strategy:
+ matrix:
+ sc: [no-self-contained, self-contained]
+ runs-on: windows-latest
+ env:
+ APP_NAME: coolgirl-multirom-builder
+ OUTPUT_DIR: coolgirl-multirom-builder
+ TOOLS_DIR: coolgirl-multirom-builder/tools
+ OUTPUT_FILE: coolgirl-multirom-builder-win-x64${{ matrix.sc == 'self-contained' && '-self-contained' || '' }}.zip
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v2
+ with:
+ dotnet-version: 6.0.x
+ - name: Setup msys
+ uses: msys2/setup-msys2@v2
+ with:
+ update: true
+ install: >-
+ base-devel
+ gcc
+ git
+ libargp-devel
+ zip
+ - name: Copy main files
+ shell: msys2 {0}
+ run: >-
+ mkdir -p ${{ env.OUTPUT_DIR }} &&
+ cp -fR *.asm Makefile LICENSE README.md configs spec demos games images footer.* *.bat ${{ env.OUTPUT_DIR }}
+ - name: Build CoolgirlCombiner for Win-x64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/CoolgirlCombiner -c Release -r win-x64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Build NesTiler for Win-x64
+ env:
+ SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true' || '--no-self-contained' }}
+ run: dotnet publish tools_sources/NesTiler/NesTiler -c Release -r win-x64 -o ${{ env.TOOLS_DIR }} ${{ env.SC_OPS }}
+ - name: Remove unnecessary files
+ shell: msys2 {0}
+ run: rm -f ${{ env.TOOLS_DIR }}/*.md
+ - name: Build nesasm for Win-x64
+ shell: msys2 {0}
+ run: make -C tools_sources/nesasm/source EXEDIR=../../../${{ env.TOOLS_DIR }}
+ - name: Test build
+ shell: msys2 {0}
+ run: make -C ${{ env.OUTPUT_DIR }} all
+ - name: Clean
+ shell: msys2 {0}
+ run: make -C ${{ env.OUTPUT_DIR }} clean
+ - name: Archive
+ env:
+ CMD: zip -r9
+ shell: msys2 {0}
+ run: |
+ ${{ env.CMD }} ${{ env.OUTPUT_FILE }} ${{ env.OUTPUT_DIR }}
+ - name: Load Release URL File from release job
+ uses: actions/download-artifact@v1
+ with:
+ name: release_url
+ - name: Get Release File Name & Upload URL
+ id: get_release_info
+ env:
+ TAG_REF_NAME: ${{ github.event.repository.updated_at }}
+ REPOSITORY_NAME: ${{ github.repository }}
+ shell: msys2 {0}
+ run: |
+ value=`cat release_url/release_url.txt`
+ echo upload_url=$value >> $GITHUB_OUTPUT
+ - name: Upload
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.get_release_info.outputs.upload_url }}
+ asset_path: ${{ env.OUTPUT_FILE }}
+ asset_name: ${{ env.OUTPUT_FILE }}
+ asset_content_type: zip