name: build on: push: pull_request: release: types: - created workflow_dispatch: jobs: build: runs-on: ubuntu-latest container: image: ghcr.io/n64-tools/gcc-toolchain-mips64:latest # we use an unofficial container for the moment as git-submodules dont work in the official one! credentials: username: ${{ github.actor }} password: ${{ secrets.github_token }} volumes: - my_docker_volume:/volume_mount steps: - name: Check for dockerenv file run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv) - uses: actions/checkout@v3 with: submodules: true fetch-depth: 1 # we only require the last check-in, unless we want to create a changelog. - name: Build libdragon run: | cd ./libdragon # FIXME: this currently also builds the examples which adds to the build time. ./build.sh # release --force-clean - name: Build rom run: | # chmod +x build.sh # ./build.sh # release --force-clean mkdir build make -j all - name: Upload artifact uses: actions/upload-artifact@v3 with: name: N64FlashcartMenu path: | ./build/N64FlashcartMenu.z64 if-no-files-found: ignore finalize: runs-on: ubuntu-latest needs: build steps: - name: Setup python uses: actions/setup-python@v4 with: python-version: '3.11.x' - uses: actions/checkout@v3 with: fetch-depth: 1 # we only require the last check-in, unless we want to create a changelog. - name: Download ROM artifact id: download-rom-artifact uses: actions/download-artifact@v3 with: name: N64FlashcartMenu path: ./build - name: Finalize rom run: | cd ./build python ../tools/finalize.py N64FlashcartMenu.z64 continue-on-error: true - name: Upload artifact uses: actions/upload-artifact@v3 with: name: N64FlashcartMenu path: | ./build/sc64menu.n64 if-no-files-found: ignore # - name: Get release # if: github.event_name == 'release' && github.event.action == 'created' # id: get_release # uses: bruceadams/get-release@v1.3.2 # env: # GITHUB_TOKEN: ${{ github.token }} # - name: Upload release asset # if: github.event_name == 'release' && github.event.action == 'created' # uses: actions/upload-release-asset@v1 # This will start failing soon due to needing node 12! # env: # GITHUB_TOKEN: ${{ github.token }} # with: # upload_url: ${{ steps.get_release.outputs.upload_url }} # asset_path: ./build/sc64menu.n64 # asset_name: sc64menu # asset_content_type: application/zip