Skip to content

Commit

Permalink
feat(build): initial release
Browse files Browse the repository at this point in the history
  • Loading branch information
boogermann committed Sep 20, 2022
0 parents commit 38faf82
Show file tree
Hide file tree
Showing 108 changed files with 15,908 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#####################################################################
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileType: OTHER
# SPDX-FileCopyrightText: (c) 2022, OpenGateware authors and contributors
#####################################################################
custom: ["https://www.paypal.com/donate/?hosted_button_id=N7HXKEL8VJ9CN"]
82 changes: 82 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#####################################################################
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileType: OTHER
# SPDX-FileCopyrightText: (c) 2022, OpenGateware authors and contributors
#####################################################################
name: "Bug Report"
description: "Let us know about an unexpected error, a crash, or an incorrect behavior."
title: 'Title of your Bug Report'
labels:
- bug
assignees:
- boogermann
body:
- type: markdown
attributes:
value: |
Hi there,
Thank you for opening an issue. Please note that we try to keep the issue tracker reserved for bug reports.
Make sure to [search for existing issues](https://github.com/opengateware/arcade-digdug/issues?q=label%3Abug) before filing a new one!
- type: input
id: version
attributes:
label: Version (or build number)
placeholder: "1.0.0"
description: |
You can find the version in the about dialog.
If you are not running the latest version, please try upgrading because your issue may have already been fixed.
validations:
required: true

- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: |
Please list the full steps required to reproduce the issue
placeholder: |
- Be precise
- Include exact data used during testing for easy reference
- The steps have to be in the exact order
- Mention pre-requisites when applicable
validations:
required: false

- type: textarea
id: expected_behavior
attributes:
label: Expected Behavior
description: If you want to include screenshots, paste them into the markdown editor below or follow up with a separate comment.
placeholder: What were you expecting?
validations:
required: false

- type: textarea
id: actual_behavior
attributes:
label: Actual Behavior
placeholder: What happened instead?
validations:
required: true

- type: textarea
id: bug_context
attributes:
label: Additional Context
description: |
Are there anything atypical about your situation that we should know?
validations:
required: false

- type: input
id: bug_firmware
attributes:
label: Opened Issues and Pull Requests
placeholder: "#1234"
description: |
Are there any other GitHub issues (open or closed) or Pull Requests that should be linked here? For example: #1234
validations:
required: false
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/QUESTION.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#####################################################################
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileType: OTHER
# SPDX-FileCopyrightText: (c) 2022, OpenGateware authors and contributors
#####################################################################
name: "Question"
description: "Ask a question about the project."
title: 'Title of your Question'
labels:
- question
assignees:
- boogermann
body:
- type: markdown
attributes:
value: |
Hi there,
Please note that we try to keep the issue tracker reserved for bug reports.
Make sure to [search for existing questions](https://github.com/opengateware/arcade-digdug/issues?q=label%3Aquestion) before filing a new one!
- type: textarea
id: question
attributes:
label: Ask a question about Galaga Compatible Gateware IP Core
placeholder: |
Ask your question here! Please keep the questions related to the FPGA Core only.
validations:
required: true
44 changes: 44 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<!-- SPDX-License-Identifier: CC0-1.0 -->
<!-- SPDX-FileType: TEXT -->
<!-- SPDX-FileCopyrightText: (c) 2022, OpenGateware authors and contributors -->

<!-- Thank you for your contribution! Please replace {Please write here} with your description -->

## What does this do / why do we need it?

<!--
Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context.
List any dependencies that are required for this change.
-->

{Please write here}

Fixes # (issue)

## Type of change

<!--
Please delete options that are not relevant.
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
- [ ] Coding style (indentation, etc)
- [ ] {Please write custom change here}

## What should a reviewer look out for in this PR?

<!--
Please describe the tests that you ran to verify your changes.
Provide instructions so we can reproduce.
Please also list any relevant details for your test configuration
-->

{Please write here}

## Additional Comments (if any)

{Please write here}
128 changes: 128 additions & 0 deletions .github/workflows/build-pocket.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
################################################################################
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileType: OTHER
# SPDX-FileCopyrightText: (c) 2022, OpenGateware authors and contributors
################################################################################
name: Build/Release
################################################################################
# How to create a tag to launch the workflow
# git tag -a "0.1.0" -m "Release v0.1.0"
# git push origin --tags
################################################################################
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
################################################################################
jobs:
synthesis:
runs-on: ubuntu-latest
env:
CORE: digdug
DISPLAY_NAME: "Namco Dig Dug"
CATEGORY: arcade
AUTHOR: boogermann
TARGET: pocket
STAGE_FOLDER: staging
RELEASE_FOLDER: release
RECIPE_FOLDER: rom-recipes
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RAETRO_WEBHOOK: ${{ secrets.RAETRO_WEBHOOK }}
FPGAGAMING_WEBHOOK: ${{ secrets.FPGAGAMING_WEBHOOK }}

steps:
- name: "🧰 Checkout Repository"
uses: actions/checkout@v3

- name: "🏗️ Compile Design"
run: |
docker run --rm -v ${{ github.workspace }}:/build raetro/quartus:pocket \
quartus_sh --flow compile projects/${CORE}_${TARGET}.qpf
- name: "🟦 Staging Files for Release"
if: startsWith(github.ref, 'refs/tags/')
id: stage
run: |
############################################################
# Create Tags
############################################################
VERSION=${GITHUB_REF#refs/*/}
DATE=$(date +'%Y-%m-%d')
CORE_FOLDER=${AUTHOR}.${CORE}
RBF_FILE=${CORE}_${TARGET}.rbf
echo ::set-output name=VERSION::${VERSION}
echo ::set-output name=REPO::${CATEGORY}-${CORE}
echo ::set-output name=TITLE::${DISPLAY_NAME}
echo ::set-output name=RELEASE_FOLDER::${RELEASE_FOLDER}
echo ::set-output name=RELEASE_FILE::${CORE_FOLDER}_${TARGET}-${VERSION}.zip
echo ::set-output name=RECIPE_FILE::${CORE_FOLDER}_rom-recipes-${VERSION}.zip
############################################################
# Clear/Create Folders
############################################################
rm -rf ${STAGE_FOLDER} ${RELEASE_FOLDER}
mkdir -p ${STAGE_FOLDER} ${RELEASE_FOLDER}
############################################################
# Copy Packaging Folder
############################################################
cp -R pkg/${TARGET}/* ${STAGE_FOLDER}
############################################################
# Clear git and png source files
############################################################
find ./${STAGE_FOLDER} -type f \( -name "*.png*" -o -name "*.gitkeep*" \) -delete;
############################################################
# Update core.json Version and Release Date
############################################################
sed -i -e "s/<%- VERSION %>/${VERSION}/g" -e "s/<%- RELEASE_DATE %>/${DATE}/g" ${STAGE_FOLDER}/Cores/${CORE_FOLDER}/core.json
############################################################
# Reverse Bitstream
############################################################
wget https://gist.githubusercontent.com/boogermann/fba1f59c87f9c8c9404cc68878b4eb1a/raw/7e93a3560902e0136dcb29fa6c41d06f06d78fb2/reverse_bits.c
g++ reverse_bits.c -o reverse_bits
./reverse_bits projects/output_files/${RBF_FILE} ${STAGE_FOLDER}/Cores/${CORE_FOLDER}/bitstream.rbf_r
- name: "📦 Create Distribution Files"
if: startsWith(github.ref, 'refs/tags/')
id: zip
run: |
pushd ./${STAGE_FOLDER}
zip -r ../${RELEASE_FOLDER}/${{ steps.stage.outputs.RELEASE_FILE }} .
popd
pushd ./pkg/${RECIPE_FOLDER}
zip -r ../../${RELEASE_FOLDER}/${{ steps.stage.outputs.RECIPE_FILE }} .
popd
- name: "🚀 Create a new GitHub Release"
uses: softprops/[email protected]
if: startsWith(github.ref, 'refs/tags/')
with:
name: Release v${{ steps.stage.outputs.VERSION }}
files: |
${{ steps.stage.outputs.RELEASE_FOLDER }}/*
- name: "📢 Send Discord Announcements"
if: startsWith(github.ref, 'refs/tags/')
run: |
declare -a StringArray=("${RAETRO_WEBHOOK}" "${FPGAGAMING_WEBHOOK}")
for webhook_url in ${StringArray[@]}; do
curl \
-H "Content-Type: application/json" \
-d '{
"username": "OpenGateware",
"avatar_url": "https://avatars.githubusercontent.com/u/112050328",
"embeds": [{
"color": 2021216,
"title": "A new core stable release is available for the Pocket",
"thumbnail": { "url": "https://github.com/opengateware/${{ steps.stage.outputs.REPO }}/raw/master/docs/git-social.jpg" },
"fields": [
{ "name": "Title", "value": "[${{ steps.stage.outputs.TITLE }}](https://github.com/opengateware/${{ steps.stage.outputs.REPO }}/)", "inline": true },
{ "name": "Version", "value": "[${{ steps.stage.outputs.VERSION }}](https://github.com/opengateware/${{ steps.stage.outputs.REPO }}/releases/tag/${{ steps.stage.outputs.VERSION }})", "inline": true },
{ "name": "Category", "value": "Arcade" },
{ "name": "Developer", "value": "[Boogermann](https://github.com/boogermann)" },
{ "name": "Download Core", "value": "[${{ steps.stage.outputs.RELEASE_FILE }}](https://github.com/opengateware/${{ steps.stage.outputs.REPO }}/releases/download/${{ steps.stage.outputs.VERSION }}/${{ steps.stage.outputs.RELEASE_FILE }})" },
{ "name": "Download ROM Recipes", "value": "[${{ steps.stage.outputs.RECIPE_FILE }}](https://github.com/opengateware/${{ steps.stage.outputs.REPO }}/releases/download/${{ steps.stage.outputs.VERSION }}/${{ steps.stage.outputs.RECIPE_FILE }})" },
{ "name": "Previous Releases", "value": "[https://github.com/opengateware/${{ steps.stage.outputs.REPO }}/releases](https://github.com/opengateware/${{ steps.stage.outputs.REPO }}/releases)" }
]
}]
}' \
$webhook_url
done
68 changes: 68 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
db
greybox_tmp
hps_isw_handoff
incremental_db
output_files
PLLJ_PLLSPE_INFO.txt
simulation
vip
.qsys_edit
*_netlist
*_sim
*.bak
*.bsf
*.cdf
*.cmp
*.csv
*.done
*.f
*.pin
*.pof
*.ptf.*
*.qar
*.qarlog
*.qdf
*.qws
*.rbf
*.rbf_r
*.rpt
*.sip
*.sld
*.smsg
*.sof
*.sopc_builder
*.sopcinfo
*.spd
*.summary
*.txt
*.xml
*~
**/.DS_Store
build_id.mif
build_id.v
c5_pin_model_dump.txt
cr_ie_info.json
# Gateman directories and files
!.gateman/*
!gateware.json
!/pkg/*
/pkg/**/*.rom
/pkg/**/*.zip
/staging/*
/release/*
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

# Pocket directories and files
!info.txt

# ROMS Checklist
!checklist.sha1
!checklist.md5
24 changes: 24 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#####################################################################
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileType: OTHER
# SPDX-FileCopyrightText: (c) 2022, OpenGateware authors and contributors
#####################################################################
# Names should be added to this file as:
# Name or Organization <email address>
#
# Core Team Members
# Current project authors, maintainers and contributors.
#####################################################################
Marcus Andrade <[email protected]>

#####################################################################
# Partial list of people who authored and/or contributed code in
# other iterations or versions of the project.
#
# Thanks to all for their valuable
# time/code/hints/fixes/discussions and contributions.
#####################################################################
Alan Steremberg <[email protected]>
Jim Gregory <[email protected]>
Matt McConnell <[email protected]>
MiSTer-X <[email protected]>
Loading

0 comments on commit 38faf82

Please sign in to comment.