name: Release Swing Music on: push: branches: - main paths: - 'client/**' - 'server/**' workflow_dispatch: env: NODE_VERSION: 18 PYTHON_VERSION: 3.10 jobs: release-linux: runs-on: ubuntu-20.04 steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: ${{ env.NODE_VERSION }} - name: Install client dependencies run: yarn install working-directory: ./client - name: Build client run: yarn build --outDir ../swingmusic/client working-directory: ./client - name: Setup Python uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install server dependencies run: poetry install working-directory: ./server - name: Build server run: poetry run python manage.py --build working-directory: ./server - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.event.head_commit.message.replace('release', '').trim() }} release_name: ${{ github.event.head_commit.message.replace('release', '').trim() }} draft: true prerelease: false - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./server/dist/swingmusic asset_name: swingmusic asset_content_type: application/octet-stream release-windows: runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: ${{ env.NODE_VERSION }} - name: Install client dependencies run: yarn install working-directory: ./client - name: Build client run: yarn build --outDir ../swingmusic/client working-directory: ./client - name: Setup Python uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Install server dependencies run: poetry install working-directory: ./server - name: Build server run: poetry run python manage.py --build working-directory: ./server - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.event.head_commit.message.replace('release', '').trim() }} release_name: ${{ github.event.head_commit.message.replace('release', '').trim() }} draft: true prerelease: false - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./server/dist/swingmusic.exe asset_name: swingmusic.exe asset_content_type: application/octet-stream