Compile all #624
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Compile all | |
on: | |
workflow_dispatch: | |
pull_request: | |
repository_dispatch: | |
types: rebuild | |
schedule: | |
- cron: '0 0 * * *' # runs every night | |
jobs: | |
list_cores: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
outputs: | |
cores: ${{ steps.generate-matrix.outputs.cores }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
token: ${{ secrets.PAT }} | |
- id: generate-matrix | |
run: | | |
cd cores | |
# Get list of cores ready for compilation | |
CORES='[' | |
for i in *; do | |
if [[ -e $i/cfg/macros.def && ! -e $i/cfg/skip ]]; then | |
if [ "$CORES" != '[' ]; then CORES="$CORES, "; fi | |
CORES="$CORES \"$i\"" | |
fi | |
done | |
CORES="$CORES ]" | |
echo $CORES | |
echo "cores=${CORES}" >> $GITHUB_OUTPUT | |
compile_cores13: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
container: | |
image: jotego/jtcore13 | |
needs: | |
- list_cores | |
strategy: | |
fail-fast: false | |
matrix: | |
core: ${{ fromJSON(needs.list_cores.outputs.cores) }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
token: ${{ secrets.PAT }} | |
- id: compile | |
run: | | |
# Compilation on Quartus 13 | |
export PATH=$PATH:/usr/local/go/bin:/opt/altera/13.1/quartus/bin | |
git config --global --add safe.directory /__w/jtcores/jtcores | |
git config --global --add safe.directory /__w/jtcores/jtcores/modules/jtframe/target/pocket | |
./setprj.sh jtseed 10 ${{ matrix.core }} --target mist --nodbg | |
- id: upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-q13-${{ matrix.core }} | |
path: release | |
retention-days: 1 | |
compile_cores20: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
needs: | |
- list_cores | |
strategy: | |
fail-fast: false | |
matrix: | |
core: ${{ fromJSON(needs.list_cores.outputs.cores) }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
token: ${{ secrets.PAT }} | |
- id: compile | |
run: | | |
# Compilation on Quartus 20.1 | |
docker run -e BETAKEY=${{ secrets.BETAKEY }} --network host -v `pwd`:/jtcores jotego/jtcore20 /jtcores/modules/jtframe/devops/xjtcore.sh ${{matrix.core}} mister pocket sidi sidi128 | |
- id: upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-q20-${{ matrix.core }} | |
path: release | |
retention-days: 1 | |
upload: | |
runs-on: ubuntu-latest | |
needs: [ compile_cores20 ] | |
if: ${{ always() }} # upload the results even if some core did not compile correctly | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: release | |
pattern: release-q* | |
merge-multiple: true | |
- name: Set zip file name | |
run: | | |
echo ARTIFACT_NAME=`git rev-parse --short HEAD`.zip >> "$GITHUB_ENV" | |
echo COMMIT_DATE=$(git show -s --format=%ci 2> /dev/null) >> "$GITHUB_ENV" | |
- name: Make zip file | |
run: | | |
ls -l release/* | |
echo ARTIFACT_NAME=$ARTIFACT_NAME | |
zip -r $ARTIFACT_NAME release | |
touch -m -d "$COMMIT_DATE" "$ARTIFACT_NAME" | |
ls -l $ARTIFACT_NAME | |
- name: Upload bundle | |
uses: bayssmekanique/action-simple-file-upload@v2 | |
with: | |
user: ${{ secrets.FTPUSER }} | |
password: ${{ secrets.FTPPASS }} | |
host: jotego.es | |
src: ${{ env.ARTIFACT_NAME }} | |
dest: ${{ env.ARTIFACT_NAME }} | |
- uses: geekyeggo/delete-artifact@v4 | |
with: | |
name: $ARTIFACT_NAME |