# workflow name name: Build # fire on on: [ push, pull_request ] # stuff to do jobs: # Install & Build (not MacOSX) # Set up environment # Build # Run build-gui.py # Run build-dr.py install-build: name: Install/Build # cycle through os list runs-on: ${{ matrix.os-name }} # VM settings # os & python versions strategy: matrix: os-name: [ ubuntu-latest, ubuntu-16.04, windows-latest ] python-version: [ 3.7 ] # needs: [ install-test ] steps: # checkout commit - name: Checkout commit uses: actions/checkout@v1 # install python - name: Install python uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} architecture: "x64" - run: | python --version # install dependencies via pip - name: Install dependencies via pip env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/install.py # try to get UPX - name: Get UPX env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/get_upx.py # run build-gui.py - name: Build GUI run: | pip install pyinstaller python ./build-gui.py # run build-dr.py - name: Build DungeonRandomizer run: | python ./build-dr.py # prepare binary artifacts for later step - name: Prepare Binary Artifacts env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/prepare_binary.py # upload binary artifacts for later step - name: Upload Binary Artifacts uses: actions/upload-artifact@v1 with: name: binaries-${{ matrix.os-name }} path: ../artifact # Install & Build GUI (MacOSX) # Set up environment # Build # Run build-gui.py mac-install-build-gui: name: Mac Install/Build GUI # cycle through os list runs-on: ${{ matrix.os-name }} # VM settings # os & python versions strategy: matrix: os-name: [ macOS-latest ] python-version: [ 3.7 ] # needs: [ install-test ] steps: # checkout commit - name: Checkout commit uses: actions/checkout@v1 # install python - name: Install python uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} architecture: "x64" - run: | python --version # install dependencies via pip - name: Install dependencies via pip env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/install.py # try to get UPX - name: Get UPX env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/get_upx.py # run build-gui.py - name: Build GUI run: | pip install pyinstaller python ./build-gui.py # prepare binary artifacts for later step - name: Prepare Binary Artifacts env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/prepare_binary.py # upload binary artifacts for later step - name: Upload Binary Artifacts uses: actions/upload-artifact@v1 with: name: gui-macos path: ../artifact # Install & Build DungeonRandomizer (MacOSX) # Set up environment # Build # Run build-dr.py mac-install-build-dr: name: Mac Install/Build GUI # cycle through os list runs-on: ${{ matrix.os-name }} # VM settings # os & python versions strategy: matrix: os-name: [ macOS-latest ] python-version: [ 3.7 ] # needs: [ install-test ] steps: # checkout commit - name: Checkout commit uses: actions/checkout@v1 # install python - name: Install python uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} architecture: "x64" - run: | python --version # install dependencies via pip - name: Install dependencies via pip env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/install.py # try to get UPX - name: Get UPX env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/get_upx.py # run build-dr.py - name: Build DungeonRandomizer run: | python ./build-dr.py # prepare binary artifacts for later step - name: Prepare Binary Artifacts env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/prepare_binary.py # upload binary artifacts for later step - name: Upload Binary Artifacts uses: actions/upload-artifact@v1 with: name: dr-macos path: ../artifact # Install & Preparing Release # Set up environment # Local Prepare Release action install-prepare-release: name: Install/Prepare Release # cycle through os list runs-on: ${{ matrix.os-name }} # VM settings # os & python versions strategy: matrix: # install/release on not xenial os-name: [ ubuntu-latest, macOS-latest, windows-latest ] python-version: [ 3.7 ] needs: [ install-build, mac-install-build-gui, mac-install-build-dr ] steps: # checkout commit - name: Checkout commit uses: actions/checkout@v1 # install python - name: Install Python uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} architecture: "x64" - run: | python --version # install dependencies via pip - name: Install Dependencies via pip env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/install.py # download binary artifact - name: Download Binary Artifact uses: actions/download-artifact@v1 with: name: binaries-${{ matrix.os-name }} path: ./ if: not contains(${{ matrix.os-name }},"macos") # download binary artifact - name: Download GUI Binary Artifact uses: actions/download-artifact@v1 with: name: gui-macos path: ./ if: contains(${{ matrix.os-name }},"macos") # download binary artifact - name: Download DungeonRandomizer Binary Artifact uses: actions/download-artifact@v1 with: name: dr-macos path: ./ if: contains(${{ matrix.os-name }},"macos") # Prepare AppVersion & Release - name: Prepare AppVersion & Release env: OS_NAME: ${{ matrix.os-name }} run: | python ./resources/ci/common/prepare_release.py # upload archive artifact for later step - name: Upload Archive Artifact uses: actions/upload-artifact@v1 with: name: archive-${{ matrix.os-name }} path: ../deploy