diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a0144bc..967ac07 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,6 +7,7 @@ on: jobs: windows: runs-on: windows-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v1 @@ -22,6 +23,7 @@ jobs: macos: runs-on: macos-latest + timeout-minutes: 20 steps: - uses: actions/checkout@v1 @@ -35,18 +37,18 @@ jobs: - name: Build x86_64 release binary run: | source $HOME/.cargo/env - cargo build --verbose --locked --release --target x86_64-apple-darwin + cargo build --verbose --locked --release --target x86_64-apple-darwin - - name: Upload x86_64 artifacts + - name: Upload Intel (x86_64) artifacts uses: actions/upload-artifact@v1 with: name: foreman-macos-x86_64 path: target/x86_64-apple-darwin/release/foreman - - name: Build arm64 release binary + - name: Build aarch64 release binary run: | source $HOME/.cargo/env - cargo build --verbose --locked --release --target aarch64-apple-darwin + cargo build --verbose --locked --release --target aarch64-apple-darwin - name: Upload arm64 artifacts uses: actions/upload-artifact@v1 @@ -56,6 +58,7 @@ jobs: linux: runs-on: ubuntu-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v1 @@ -67,4 +70,69 @@ jobs: uses: actions/upload-artifact@v1 with: name: foreman-linux - path: target/release/foreman \ No newline at end of file + path: target/release/foreman + + release: + runs-on: ubuntu-latest + timeout-minutes: 15 + needs: ['windows', 'macos', 'linux'] + steps: + - uses: actions/checkout@v1 + - name: Download artifacts + uses: actions/download-artifact@v2 + with: + path: artifacts + - run: | + zip -rj foreman-win64.zip ./artifacts/foreman-win64/* + zip -rj foreman-macos-x86_64.zip ./artifacts/foreman-macos-x86_64/* + zip -rj foreman-macos-arm64.zip ./artifacts/foreman-macos-arm64/* + zip -rj foreman-linux.zip ./artifacts/foreman-linux/* + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + draft: true + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + + - name: Upload windows build + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./foreman-win64.zip + asset_name: foreman-win64.zip + asset_content_type: application/zip + + - name: Upload macos build + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./foreman-macos-x86_64.zip + asset_name: foreman-macos-x86_64.zip + asset_content_type: application/zip + + - name: Upload macos build (arm64) + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./foreman-macos-arm64.zip + asset_name: foreman-macos-arm64.zip + asset_content_type: application/zip + + - name: Upload linux build + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./foreman-linux.zip + asset_name: foreman-linux.zip + asset_content_type: application/zip