Skip to content

Commit

Permalink
ci(workflows): add preview support in main release (#3007)
Browse files Browse the repository at this point in the history
* ci(workflows): remove preview workflow and add preview support in release

Removed the `preview.yml` workflow as its functionality is now integrated
into the `release.yml` workflow. Added support for creating preview
releases via an input flag and adjusted related steps for tag naming and
conditions in the release process.

* ci(release): parameterize artifact names with job target

Updated artifact and binary names in the release workflow to include
matrix job targets for improved identification and clarity in
multi-target builds.
  • Loading branch information
steebchen authored Feb 13, 2025
1 parent da8e15f commit 9d0964e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 100 deletions.
86 changes: 0 additions & 86 deletions .github/workflows/preview.yml

This file was deleted.

38 changes: 24 additions & 14 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ name: release

on:
workflow_dispatch:
inputs:
preview:
description: 'Create a preview release'
type: boolean
default: true
pull_request:
types: [closed]
branches:
Expand All @@ -23,8 +28,12 @@ jobs:
- name: Get version
id: release_info
run: |
cargo install cargo-get
echo "tag_name=$(cargo get workspace.package.version)" >> $GITHUB_OUTPUT
if ${{ github.event.inputs.preview }}; then
echo "tag_name=preview--$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
else
cargo install cargo-get
echo "tag_name=v$(cargo get workspace.package.version)" >> $GITHUB_OUTPUT
fi
release:
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
Expand Down Expand Up @@ -109,7 +118,7 @@ jobs:
- name: Archive binaries
id: artifacts
env:
VERSION_NAME: v${{ needs.prepare.outputs.tag_name }}
VERSION_NAME: ${{ needs.prepare.outputs.tag_name }}
run: |
if [ "$PLATFORM_NAME" == "linux" ]; then
tar -czvf "dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" -C ./target/${TARGET}/release katana sozo torii dojo-language-server
Expand Down Expand Up @@ -139,16 +148,16 @@ jobs:

# Upload these for use with the Docker build later
- name: Upload docker binaries
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: binaries
name: binaries-${{ matrix.job.target }}
path: ${{ env.PLATFORM_NAME }}
retention-days: 1

- name: Upload release artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: artifacts
name: artifacts-${{ matrix.job.target }}
path: ${{ steps.artifacts.outputs.file_name }}
retention-days: 1

Expand All @@ -158,20 +167,20 @@ jobs:
env:
GITHUB_USER: ${{ github.repository_owner }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

if: ${{ !startsWith(needs.prepare.outputs.tag_name, 'preview') }}
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: artifacts
pattern: artifacts-*
path: artifacts
- id: version_info
run: |
cargo install cargo-get
echo "version=$(cargo get workspace.package.version)" >> $GITHUB_OUTPUT
- name: Display structure of downloaded files
run: ls -R artifacts
- run: gh release create v${{ steps.version_info.outputs.version }} ./artifacts/*.gz --generate-notes --draft
- run: gh release create ${{ steps.version_info.outputs.version }} ./artifacts/*.gz --generate-notes --draft

docker-build-and-push:
runs-on: ubuntu-20.04-4-cores
Expand All @@ -182,10 +191,11 @@ jobs:
uses: actions/checkout@v2

- name: Download binaries
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: binaries
pattern: binaries-*
path: artifacts/linux
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
Expand All @@ -201,7 +211,7 @@ jobs:
uses: docker/build-push-action@v3
with:
push: true
tags: ghcr.io/${{ github.repository }}:latest,ghcr.io/${{ github.repository }}:v${{ needs.prepare.outputs.tag_name }}
tags: ghcr.io/${{ github.repository }}:latest,ghcr.io/${{ github.repository }}:${{ needs.prepare.outputs.tag_name }}
platforms: linux/amd64,linux/arm64
build-contexts: |
artifacts=artifacts

0 comments on commit 9d0964e

Please sign in to comment.