Skip to content

Compile all

Compile all #599

Workflow file for this run

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