name: Build on: push: branches: - "*" pull_request: branches: - "*" types: [opened, synchronize, reopened] jobs: build: name: Build binaries runs-on: windows-2022 strategy: matrix: configuration: - Debug - Release steps: - name: Wait for previous workflows if: github.event_name == 'push' && github.ref == 'refs/heads/master' uses: softprops/turnstyle@v1 with: poll-interval-seconds: 10 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Check out files uses: actions/checkout@v2 with: submodules: true fetch-depth: 0 # NOTE - If LFS ever starts getting used during builds, switch this to true! lfs: false - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: Generate project files #run: tools/premake5 vs2022 --ci-build --ac-disable run: tools/premake5 vs2022 --ac-disable - name: Set up problem matching uses: ammaraskar/msvc-problem-matcher@master - name: Build ${{matrix.configuration}} binaries run: msbuild /m /v:minimal /p:Configuration=${{matrix.configuration}} build/iw4x.sln - name: Upload ${{matrix.configuration}} binaries uses: actions/upload-artifact@v2 with: name: ${{matrix.configuration}} binaries path: | build/bin/${{matrix.configuration}}/iw4x.dll build/bin/${{matrix.configuration}}/iw4x.pdb # - name: Upload ${{matrix.configuration}} data artifacts # uses: actions/upload-artifact@v2 # with: # name: ${{matrix.configuration}} data artifacts # path: | # data/* deploy: name: Deploy artifacts needs: build runs-on: ubuntu-latest if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop') steps: - name: Setup main environment if: github.ref == 'refs/heads/master' run: echo "XLABS_MASTER_PATH=${{ secrets.XLABS_MASTER_SSH_PATH }}" >> $GITHUB_ENV - name: Setup develop environment if: github.ref == 'refs/heads/develop' run: echo "XLABS_MASTER_PATH=${{ secrets.XLABS_MASTER_SSH_PATH_DEV }}" >> $GITHUB_ENV - name: Download Release binaries uses: actions/download-artifact@v2 with: name: Release binaries # - name: Download Release data artifacts # uses: actions/download-artifact@v2 # with: # name: Release data artifacts # path: data # Set up committer info and GPG key - name: Install SSH key uses: shimataro/ssh-key-action@v2 with: key: ${{ secrets.XLABS_MASTER_SSH_PRIVATE_KEY }} known_hosts: 'just-a-placeholder-so-we-dont-get-errors' - name: Add known hosts run: ssh-keyscan -H ${{ secrets.XLABS_MASTER_SSH_ADDRESS }} >> ~/.ssh/known_hosts - name: Wait for previous workflows uses: softprops/turnstyle@v1 with: poll-interval-seconds: 10 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # - name: Remove old data files # run: ssh ${{ secrets.XLABS_MASTER_SSH_USER }}@${{ secrets.XLABS_MASTER_SSH_ADDRESS }} rm -rf ${{ env.XLABS_MASTER_PATH }}/iw4x/data/* - name: Upload iw4x binary run: rsync -avz iw4x.dll ${{ secrets.XLABS_MASTER_SSH_USER }}@${{ secrets.XLABS_MASTER_SSH_ADDRESS }}:${{ env.XLABS_MASTER_PATH }}/iw4x/ # - name: Upload data files # run: rsync -avz ./data/ ${{ secrets.XLABS_MASTER_SSH_USER }}@${{ secrets.XLABS_MASTER_SSH_ADDRESS }}:${{ env.XLABS_MASTER_PATH }}/iw4x/data/ - name: Publish changes run: ssh ${{ secrets.XLABS_MASTER_SSH_USER }}@${{ secrets.XLABS_MASTER_SSH_ADDRESS }} ${{ secrets.XLABS_MASTER_SSH_CHANGE_PUBLISH_COMMAND }}