diff options
Diffstat (limited to '.github/workflows/deployment.yml')
-rw-r--r-- | .github/workflows/deployment.yml | 163 |
1 files changed, 118 insertions, 45 deletions
diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 37f6fac8..3cf29c6a 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -165,8 +165,6 @@ jobs: with: fetch-depth: 1 - - uses: actions/setup-python@v2 - - name: Get release download URL uses: actions/download-artifact@v2 with: @@ -186,22 +184,6 @@ jobs: echo "Release upload url: ${{ env.RELEASE_UPLOAD_URL }}" echo "Release version: ${{ env.RELEASE_VERSION }}" - - name: Install Net-Framework-Core (Windows x86-64 MSVC) - if: matrix.triple.target == 'x86_64-pc-windows-msvc' - shell: powershell - run: Install-WindowsFeature Net-Framework-Core - - - name: Install wixtoolset (Windows x86-64 MSVC) - if: matrix.triple.target == 'x86_64-pc-windows-msvc' - uses: crazy-max/ghaction-chocolatey@v1.4.0 - with: - args: install -y wixtoolset - - # - name: Export wixtoolset to path (Windows x86-64 MSVC) - # if: matrix.triple.target == 'x86_64-pc-windows-msvc' - # shell: powershell - # run: export PATH=${PATH}:"/c/Program Files (x86)/WiX Toolset v3.11/bin" - - name: Install toolchain uses: actions-rs/toolchain@v1 with: @@ -272,16 +254,85 @@ jobs: name: artifacts path: artifacts - - name: Build msi file (Windows x86-64 MSVC) - if: matrix.triple.target == 'x86_64-pc-windows-msvc' + - name: Compress completion files (Linux x86-64 GNU) + if: matrix.triple.target == 'x86_64-unknown-linux-gnu' && matrix.triple.container == '' + shell: bash + run: | + tar -C ./completion -czvf completion.tar.gz . + + - name: Release completion files (Linux x86-64 GNU) + if: matrix.triple.target == 'x86_64-unknown-linux-gnu' && matrix.triple.container == '' + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ env.RELEASE_UPLOAD_URL }} + asset_path: completion.tar.gz + asset_name: completion.tar.gz + asset_content_type: application/octet-stream + + build-msi: + name: build-msi + needs: [create-github-release] + runs-on: "windows-2019" + env: + RUST_BACKTRACE: 1 + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - uses: actions/setup-python@v2 + + - name: Get release download URL + uses: actions/download-artifact@v2 + with: + name: artifacts + path: artifacts + + - name: Set release upload URL and release version + shell: bash + run: | + release_upload_url="$(cat ./artifacts/release-upload-url)" + echo "RELEASE_UPLOAD_URL=$release_upload_url" >> $GITHUB_ENV + release_version="$(cat ./artifacts/release-version)" + echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV + + - name: Validate release environment variables + run: | + echo "Release upload url: ${{ env.RELEASE_UPLOAD_URL }}" + echo "Release version: ${{ env.RELEASE_VERSION }}" + + - name: Install Net-Framework-Core (Windows x86-64 MSVC) + shell: powershell + run: Install-WindowsFeature Net-Framework-Core + + - name: Install wixtoolset (Windows x86-64 MSVC) + uses: crazy-max/ghaction-chocolatey@v1.4.0 + with: + args: install -y wixtoolset + + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + target: x86_64-pc-windows-msvc + + - uses: Swatinem/rust-cache@v1 + with: + key: x86_64-pc-windows-msvc-msi + + - name: Build msi file shell: powershell run: | cargo install cargo-wix --version 0.3.1 --locked cargo wix init cargo wix - - name: Upload msi file (Windows x86-64 MSVC) - if: matrix.triple.target == 'x86_64-pc-windows-msvc' + - name: Upload msi file uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -291,15 +342,13 @@ jobs: asset_name: bottom_x86_64_installer.msi asset_content_type: application/octet-stream - - name: Build winget (Windows x86-64 MSVC) - if: matrix.triple.target == 'x86_64-pc-windows-msvc' + - name: Build winget run: | python "./deployment/packager.py" ${{ env.RELEASE_VERSION }} "./deployment/windows/winget/winget.yaml.template" "Clement.bottom.yaml" "SHA256" "./bottom_x86_64_installer.msi" $Code = powershell ./deployment/windows/winget/get_product_code.ps1 ./bottom_x86_64_installer.msi python "./deployment/windows/winget/product_code.py" Clement.bottom.yaml $Code - - name: Upload winget file (Windows x86-64 MSVC) - if: matrix.triple.target == 'x86_64-pc-windows-msvc' + - name: Upload winget file uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -309,15 +358,56 @@ jobs: asset_name: Clement.bottom.yaml asset_content_type: application/octet-stream + build-deb: + name: build-deb + needs: [create-github-release] + runs-on: "ubuntu-18.04" + env: + RUST_BACKTRACE: 1 + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: Get release download URL + uses: actions/download-artifact@v2 + with: + name: artifacts + path: artifacts + + - name: Set release upload URL and release version + shell: bash + run: | + release_upload_url="$(cat ./artifacts/release-upload-url)" + echo "RELEASE_UPLOAD_URL=$release_upload_url" >> $GITHUB_ENV + release_version="$(cat ./artifacts/release-version)" + echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV + + - name: Validate release environment variables + run: | + echo "Release upload url: ${{ env.RELEASE_UPLOAD_URL }}" + echo "Release version: ${{ env.RELEASE_VERSION }}" + + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + target: x86_64-unknown-linux-gnu + + - uses: Swatinem/rust-cache@v1 + with: + key: x86_64-unknown-linux-gnu-deb + - name: Build Debian release (Linux x86-64 GNU) - if: matrix.triple.target == 'x86_64-unknown-linux-gnu' && matrix.triple.container == '' run: | cargo install cargo-deb --version 1.29.0 --locked cargo deb cp ./target/debian/bottom_*.deb ./bottom_${{ env.RELEASE_VERSION }}_amd64.deb - name: Upload Debian file (Linux x86-64 GNU) - if: matrix.triple.target == 'x86_64-unknown-linux-gnu' && matrix.triple.container == '' uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -372,20 +462,3 @@ jobs: asset_path: choco.zip asset_name: choco.zip asset_content_type: application/octet-stream - - - name: Compress completion files (Linux x86-64 GNU) - if: matrix.triple.target == 'x86_64-unknown-linux-gnu' && matrix.triple.container == '' - shell: bash - run: | - tar -C ./completion -czvf completion.tar.gz . - - - name: Release completion files (Linux x86-64 GNU) - if: matrix.triple.target == 'x86_64-unknown-linux-gnu' && matrix.triple.container == '' - uses: actions/upload-release-asset@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ env.RELEASE_UPLOAD_URL }} - asset_path: completion.tar.gz - asset_name: completion.tar.gz - asset_content_type: application/octet-stream |