Skip to content

v1.0.0-alpha4

v1.0.0-alpha4 #114

Workflow file for this run

name: Publish
on:
release:
types: [published]
workflow_call:
env:
REGISTRY: ghcr.io
jobs:
publish-packages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 8.0.x
- name: Restore dependencies
run: dotnet restore "./Synapse.sln"
- name: Build
run: dotnet build "./Synapse.sln" --configuration Release --no-restore
- name: Push
run: dotnet nuget push "./src/*/*/bin/Release/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
publish-server-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}/api
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
file: './src/api/Synapse.Api.Server/Dockerfile'
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
publish-operator-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}/operator
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
file: './src/operator/Synapse.Operator/Dockerfile'
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
publish-correlator-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}/correlator
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
file: './src/correlator/Synapse.Correlator/Dockerfile'
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
publish-runner-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}/runner
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
file: './src/runner/Synapse.Runner/Dockerfile'
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
publish-server-bin:
name: Release API Binaries
strategy:
matrix:
kind: ['linux', 'windows', 'macOS']
include:
- kind: linux
os: ubuntu-latest
target: linux-x64
- kind: windows
os: windows-latest
target: win-x64
- kind: macOS
os: macos-latest
target: osx-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup
uses: actions/setup-dotnet@v2
with:
dotnet-version: 8.0.x
- name: Restore
run: dotnet restore
- name: Build
shell: bash
run: |
tag=$(git describe --tags --abbrev=0)
release_name="api-${{ matrix.target }}"
# Publish
dotnet publish src/api/Synapse.Api.Server/Synapse.Api.Server.csproj --runtime "${{ matrix.target }}" -c Release -o "$release_name"
# Pack
if [ "${{ matrix.target }}" == "win-x64" ]; then
# Pack for Windows
7z a -tzip "${release_name}.zip" "./${release_name}/*"
else
# Pack for other OS
tar czvf "${release_name}.tar.gz" "$release_name"
fi
# Delete output directory
rm -r "$release_name"
- name: Publish
uses: softprops/action-gh-release@v1
with:
files: "api*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-operator-bin:
name: Release Operator Binaries
strategy:
matrix:
kind: ['linux', 'windows', 'macOS']
include:
- kind: linux
os: ubuntu-latest
target: linux-x64
- kind: windows
os: windows-latest
target: win-x64
- kind: macOS
os: macos-latest
target: osx-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup
uses: actions/setup-dotnet@v2
with:
dotnet-version: 8.0.x
- name: Restore
run: dotnet restore
- name: Build
shell: bash
run: |
tag=$(git describe --tags --abbrev=0)
release_name="operator-${{ matrix.target }}"
# Publish
dotnet publish src/operator/Synapse.Operator/Synapse.Operator.csproj --runtime "${{ matrix.target }}" -c Release -o "$release_name"
# Pack
if [ "${{ matrix.target }}" == "win-x64" ]; then
# Pack for Windows
7z a -tzip "${release_name}.zip" "./${release_name}/*"
else
# Pack for other OS
tar czvf "${release_name}.tar.gz" "$release_name"
fi
# Delete output directory
rm -r "$release_name"
- name: Publish
uses: softprops/action-gh-release@v1
with:
files: "operator*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-correlator-bin:
name: Release Correlator Binaries
strategy:
matrix:
kind: ['linux', 'windows', 'macOS']
include:
- kind: linux
os: ubuntu-latest
target: linux-x64
- kind: windows
os: windows-latest
target: win-x64
- kind: macOS
os: macos-latest
target: osx-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup
uses: actions/setup-dotnet@v2
with:
dotnet-version: 8.0.x
- name: Restore
run: dotnet restore
- name: Build
shell: bash
run: |
tag=$(git describe --tags --abbrev=0)
release_name="correlator-${{ matrix.target }}"
# Publish
dotnet publish src/correlator/Synapse.Correlator/Synapse.Correlator.csproj --runtime "${{ matrix.target }}" -c Release -o "$release_name"
# Pack
if [ "${{ matrix.target }}" == "win-x64" ]; then
# Pack for Windows
7z a -tzip "${release_name}.zip" "./${release_name}/*"
else
# Pack for other OS
tar czvf "${release_name}.tar.gz" "$release_name"
fi
# Delete output directory
rm -r "$release_name"
- name: Publish
uses: softprops/action-gh-release@v1
with:
files: "correlator*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-runner-bin:
name: Release Runner Binaries
strategy:
matrix:
kind: ['linux', 'windows', 'macOS']
include:
- kind: linux
os: ubuntu-latest
target: linux-x64
- kind: windows
os: windows-latest
target: win-x64
- kind: macOS
os: macos-latest
target: osx-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup
uses: actions/setup-dotnet@v2
with:
dotnet-version: 8.0.x
- name: Restore
run: dotnet restore
- name: Build
shell: bash
run: |
tag=$(git describe --tags --abbrev=0)
release_name="synapse-runner-${{ matrix.target }}"
# Publish
dotnet publish src/runner/Synapse.Runner/Synapse.Runner.csproj --runtime "${{ matrix.target }}" -c Release -o "$release_name" -p:PublishSingleFile=true
# Pack
if [ "${{ matrix.target }}" == "win-x64" ]; then
# Pack for Windows
7z a -tzip "${release_name}.zip" "./${release_name}/*"
else
# Pack for other OS
tar czvf "${release_name}.tar.gz" "$release_name"
fi
# Delete output directory
rm -r "$release_name"
- name: Publish
uses: softprops/action-gh-release@v1
with:
files: "synapse-runner*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-cli-bin:
name: Release CLI Binaries
strategy:
matrix:
kind: ['linux', 'windows', 'macOS']
include:
- kind: linux
os: ubuntu-latest
target: linux-x64
- kind: windows
os: windows-latest
target: win-x64
- kind: macOS
os: macos-latest
target: osx-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup
uses: actions/setup-dotnet@v2
with:
dotnet-version: 8.0.x
- name: Restore
run: dotnet restore
- name: Build
shell: bash
run: |
tag=$(git describe --tags --abbrev=0)
release_name="synctl-${{ matrix.target }}"
# Publish
dotnet publish src/cli/Synapse.Cli/Synapse.Cli.csproj --runtime "${{ matrix.target }}" -c Release -o "$release_name" -p:PublishSingleFile=true -p:GenerateDocumentationFile=false
# Pack
if [ "${{ matrix.target }}" == "win-x64" ]; then
# Pack for Windows
7z a -tzip "${release_name}.zip" "./${release_name}/*"
else
# Pack for other OS
tar czvf "${release_name}.tar.gz" "$release_name"
fi
# Delete output directory
rm -r "$release_name"
- name: Publish
uses: softprops/action-gh-release@v1
with:
files: "synctl*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}