on: workflow_dispatch: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CARGO_TERM_COLOR: always name: Create release jobs: get_version: name: Get version from Cargo.toml runs-on: ubuntu-latest outputs: project_version: "$(cat version.txt)" steps: - name: Checkout uses: actions/checkout@v2 - name: install libgtk-dev libwebkit2gtk-4.0 run: sudo apt update && sudo apt install libwebkit2gtk-4.0-dev if: contains(matrix.os, 'ubuntu') - name: Build project run: | cargo build make_release: name: Create Release runs-on: ubuntu-latest needs: get_version outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} VERSION: ${{ needs.get_version.outputs.version }} with: tag_name: v${{ env.VERSION }} release_name: Test version v${{ env.VERSION }} body: | Changes in this version To be written by maintainer. draft: true prerelease: true upload: name: Create and upload builds needs: make_release runs-on: ${{ matrix.os }} strategy: matrix: os: [ windows-latest ] defaults: run: shell: bash steps: - name: Checkout code uses: actions/checkout@v2 - name: install libgtk-dev libwebkit2gtk-4.0 run: sudo apt update && sudo apt install libwebkit2gtk-4.0-dev if: contains(matrix.os, 'ubuntu') - name: Build release binary run: | cargo build --release - name: Fill variables run: | echo "BIN_PATH=./target/release/alfis" >> $GITHUB_ENV echo "BIN_NAME=alfis_${env.VERSION}.zip" >> $GITHUB_ENV - name: Windows variables if: contains(matrix.os, 'windows') run: | echo "BIN_PATH=target/release/alfis.exe" >> $GITHUB_ENV echo "BIN_NAME=alfis_${env.VERSION}.zip" >> $GITHUB_ENV - name: Packaging uses: papeloto/action-zip@v1 with: files: ${{ env.BIN_PATH }} dest: ${{ env.BIN_NAME }} - name: Upload binary id: upload-binary uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.make_release.outputs.upload_url }} asset_path: ${{ env.BIN_NAME }} asset_name: ${{ env.BIN_NAME }} asset_content_type: application/zip