name: Aspire Publish Workflow on: push: branches: - master workflow_dispatch: jobs: publish: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Checkout repository uses: actions/checkout@v3 - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: "9.0.x" - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Install Aspire CLI run: dotnet tool install -g Aspire.Cli --prerelease - name: Build and Publish Aspire Application run: aspire publish --project ./DysonNetwork.Control/DysonNetwork.Control.csproj --output publish - name: Tag and Push Images run: | IMAGES=( "sphere" "pass" "ring" "drive" "develop" ) for image in "${IMAGES[@]}"; do IMAGE_NAME="ghcr.io/${{ vars.PACKAGE_OWNER }}/dyson-$image:alpha" SOURCE_IMAGE_NAME="$image:latest" # Aspire's default local image name echo "Tagging and pushing $SOURCE_IMAGE_NAME to $IMAGE_NAME..." docker tag $SOURCE_IMAGE_NAME $IMAGE_NAME docker push $IMAGE_NAME done - name: Upload Aspire Publish Directory uses: actions/upload-artifact@v3 with: name: aspire-publish-output path: ./publish/ - name: Upload Docker Compose file uses: actions/upload-artifact@v3 with: name: docker-compose-output path: ./publish/docker-compose.yml