test: Adding rpcs test to csharp #3030
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Edge Packages | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
jobs: | |
genversion: | |
if: github.actor != 'renovate[bot]' && github.repository_owner == 'aneoconsulting' | |
runs-on: ubuntu-latest | |
name: Version | |
outputs: | |
version: ${{ steps.genver.outputs.version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
ref: ${{ github.head_ref }} | |
fetch-depth: 0 | |
- name: Generate Version | |
id: genver | |
run: echo "VERSION=$(npx @aneoconsultingfr/generate-next-version@latest --edge)" >> "$GITHUB_OUTPUT" | |
- name: Summary version | |
# Print to the summary | |
run: echo "VERSION=${{ steps.genver.outputs.version }}" >> $GITHUB_STEP_SUMMARY | |
version: | |
if: contains( ${{ needs.genversion.outputs.version }} , "-") | |
needs: [genversion] | |
runs-on: ubuntu-latest | |
name: Check Version | |
outputs: | |
version: ${{ steps.outver.outputs.version }} | |
steps: | |
- name: Output Version | |
id: outver | |
run: echo "VERSION=${{ needs.genversion.outputs.version }}" >> "$GITHUB_OUTPUT" | |
tests: | |
if: github.actor != 'renovate[bot]' && github.repository_owner == 'aneoconsulting' | |
name: Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
projects: | |
- packages/csharp/ArmoniK.Api.Tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
ref: ${{ github.head_ref }} | |
fetch-depth: 0 | |
# Install the .NET Core workload | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4 | |
with: | |
dotnet-version: 6.x | |
- name: Run tests | |
run: | | |
cd ${{ matrix.projects }} | |
dotnet test --logger "trx;LogFileName=test-results.trx" | |
- name: Test Report | |
uses: dorny/test-reporter@v1 | |
if: success() || failure() | |
with: | |
name: Test - ${{ matrix.os }} ${{ matrix.projects }} | |
path: ${{ matrix.projects }}/TestResults/test-results.trx | |
reporter: dotnet-trx | |
release-csharp-packages: | |
needs: [tests, version] | |
name: Release C# Packages | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
package: | |
- packages/csharp/ArmoniK.Api.Common.Channel/ArmoniK.Api.Common.Channel.csproj | |
- packages/csharp/ArmoniK.Api.Common/ArmoniK.Api.Common.csproj | |
- packages/csharp/ArmoniK.Api.Core/ArmoniK.Api.Core.csproj | |
- packages/csharp/ArmoniK.Api.Client/ArmoniK.Api.Client.csproj | |
- packages/csharp/ArmoniK.Api.Worker/ArmoniK.Api.Worker.csproj | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
ref: ${{ github.head_ref }} | |
fetch-depth: 0 | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4 | |
with: | |
dotnet-version: 6.x | |
- name: Build the package | |
run: | | |
dotnet build ${{ matrix.package }} -c Release | |
- name: Pack the package | |
run: | | |
dotnet pack ${{ matrix.package }} -c Release -o /tmp/packages -p:PackageVersion=${{ needs.version.outputs.version }} | |
ls /tmp/packages | |
- name: Push the package | |
run: dotnet nuget push /tmp/packages/ArmoniK.Api.*.nupkg -k ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json | |
release-angular-package: | |
needs: [version] | |
if: github.ref == 'refs/heads/main' | |
name: Release Angular Package | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
ref: ${{ github.head_ref }} | |
fetch-depth: 0 | |
- run: npm i -g @antfu/ni pnpm | |
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
registry-url: https://registry.npmjs.org/ | |
- name: Install dependencies | |
run: nci && cd packages/angular && nci | |
- name: Install Protoc | |
run: sudo apt install -y protobuf-compiler | |
- name: Build protos | |
run: cd packages/angular && nr proto:generate:linux | |
- name: Update version | |
run: nr update-versions ${{ needs.version.outputs.version }} | |
- name: Build package | |
run: cd packages/angular && nr build | |
- name: Release package | |
run: nr ci:publish-edge angular dist/aneoconsultingfr/armonik.api.angular | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | |
release-web-package: | |
needs: [version] | |
if: github.ref == 'refs/heads/main' | |
name: Release Web Package | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
ref: ${{ github.head_ref }} | |
fetch-depth: 0 | |
- run: npm i -g @antfu/ni pnpm | |
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
registry-url: https://registry.npmjs.org/ | |
- name: Install ni | |
run: npm i -g @antfu/ni pnpm | |
- name: Install dependencies | |
run: nci && cd packages/web && nci | |
- name: Install Protoc | |
run: sudo apt install -y protobuf-compiler | |
- name: Build protos | |
run: cd packages/web && nr proto:generate:linux | |
- name: Build package | |
run: cd packages/web && nr build | |
- name: Update version | |
run: nr update-versions ${{ needs.version.outputs.version }} | |
- name: Release package | |
run: nr ci:publish-edge web | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | |
release-python-package: | |
needs: [version] | |
if: github.actor != 'renovate[bot]' && github.repository_owner == 'aneoconsulting' | |
name: Release Python Package | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: packages/python | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
fetch-depth: 0 | |
- name: pip update and add build package | |
run: bash proto2python.sh ~/pyvenv | |
- name: Upload as artifact | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a | |
with: | |
name: python-packages | |
path: packages/python/pkg/ | |
- name: Publish to PyPITest | |
if: github.ref != 'refs/heads/main' | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
password: ${{ secrets.DEV_PYPI_API_TOKEN }} | |
print-hash: true | |
packages-dir: packages/python/pkg/ | |
repository-url: https://test.pypi.org/legacy/ | |
release-cpp-package: | |
needs: [version] | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [tar.gz, deb, rpm] | |
name: Build C++ Packages [${{ matrix.type }}] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
ref: ${{ github.ref }} | |
- name: Build the package | |
run: | | |
cd packages/cpp/tools/packaging | |
./make-${{ matrix.type }}.sh | |
- name: Publish package as artefact | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a | |
with: | |
if-no-files-found: error | |
path: packages/cpp/tools/packaging/*.${{ matrix.type }} | |
name: libarmonik.${{ matrix.type }} | |
# TODO Upload to a more permanent storage | |
release-java-package: | |
needs: [version] | |
name: Release Java Package | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: packages/java | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- name: Set up Maven Central Repository | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: temurin | |
server-id: central | |
server-username: MAVEN_USERNAME | |
server-password: MAVEN_PASSWORD | |
gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }} | |
gpg-passphrase: MAVEN_GPG_PASSPHRASE | |
- name: Publish package | |
run: | | |
mvn versions:set -DnewVersion=${{ needs.version.outputs.version }} | |
mvn --batch-mode deploy -DskipTests | |
env: | |
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | |
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} | |
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }} |