name: Build Porymap permissions: contents: write on: push: branches: - master tags: - '*' pull_request: branches: - master # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build-qt5-linux: runs-on: ubuntu-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - name: Cache Qt id: cache-qt uses: actions/cache@v1 with: path: ../Qt key: ${{ runner.os }}-QtCache - name: Install Qt uses: jurplel/install-qt-action@v2 with: version: '5.14.2' modules: 'qtwidgets qtqml qtcharts' cached: ${{ steps.cache-qt.outputs.cache-hit }} - name: Configure run: qmake porymap.pro - name: Compile run: make build-macos: runs-on: macos-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - name: Cache Qt id: cache-qt uses: actions/cache@v1 with: path: ../Qt key: ${{ runner.os }}-QtCache - name: Install Qt uses: jurplel/install-qt-action@v3 with: version: '6.7.*' modules: 'qtcharts' cached: ${{ steps.cache-qt.outputs.cache-hit }} - name: Configure run: qmake -config release porymap.pro - name: Compile run: make - name: Create Disk Image if: startsWith(github.ref, 'refs/tags/') run: macdeployqt porymap.app -dmg - name: Prep Release Directory if: startsWith(github.ref, 'refs/tags/') run: | mkdir porymap-macOS-${{ github.ref_name }} cp porymap.dmg porymap-macOS-${{ github.ref_name }}/porymap.dmg cp RELEASE-README.txt porymap-macOS-${{ github.ref_name }}/README.txt - name: Bundle Release Directory if: startsWith(github.ref, 'refs/tags/') run: zip -r porymap-macOS-${{ github.ref_name }}.zip porymap-macOS-${{ github.ref_name }} - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: porymap-macOS-${{ github.ref_name }}.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} build-static-windows: runs-on: windows-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - uses: dsaltares/fetch-gh-release-asset@master if: steps.cache-static-qt.outputs.cache-hit != 'true' with: repo: 'huderlem/porymap' version: 'tags/qt-static-6.0.1-windows' file: 'Qt-Static-Windows-mingw-6.0.1.zip' token: ${{ secrets.GITHUB_TOKEN }} - name: Unzip Static Qt if: steps.cache-static-qt.outputs.cache-hit != 'true' run: powershell.exe -Command "Expand-Archive -Path Qt-Static-Windows-mingw-6.0.1.zip -DestinationPath ../Qt" - uses: dsaltares/fetch-gh-release-asset@master with: repo: 'huderlem/porymap' version: 'tags/qt-static-6.0.1-windows' file: 'mingw810_64.zip' token: ${{ secrets.GITHUB_TOKEN }} - name: Unzip mingw run: powershell.exe -Command "Expand-Archive -Path mingw810_64.zip -DestinationPath ../mingw810_64" - name: Add Qt Static to PATH run: echo "$env:GITHUB_WORKSPACE/../Qt/6.0.1/bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 - name: Add static config to .pro file run: echo "CONFIG += qt static" >> porymap.pro - name: Add static qmake flags to .pro file run: echo "QMAKE_LFLAGS += -static-libgcc -static-libstdc++ -static -lwinpthread" >> porymap.pro - name: Run Qmake env: QTDIR: ../Qt/6.0.1 run: qmake.exe -o Makefile porymap.pro -spec win32-g++ "CONFIG+=qtquickcompiler" - name: Add mingw to PATH run: echo "$env:GITHUB_WORKSPACE/../mingw810_64/bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 - name: Compile env: QTDIR: ../Qt/6.0.1 run: mingw32-make.exe -j8 - name: Prep Release Directory if: startsWith(github.ref, 'refs/tags/') run: | mkdir porymap-windows-${{ github.ref_name }} cp release/porymap.exe porymap-windows-${{ github.ref_name }}/porymap.exe cp RELEASE-README.txt porymap-windows-${{ github.ref_name }}/README.txt - name: Bundle Release Directory if: startsWith(github.ref, 'refs/tags/') run: powershell.exe -Command "Compress-Archive -Path porymap-windows-${{ github.ref_name }} -DestinationPath porymap-windows-${{ github.ref_name }}.zip" - name: Create Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: porymap-windows-${{ github.ref_name }}.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}