mirror of
https://github.com/D4M13N-D3V/comissions-app-core-api.git
synced 2025-03-13 09:34:55 +00:00
268 lines
8.7 KiB
YAML
268 lines
8.7 KiB
YAML
#name: build-image
|
|
#on:
|
|
# push:
|
|
# branches: [main]
|
|
#
|
|
#jobs:
|
|
# build-image:
|
|
# runs-on: [ubuntu-latest]
|
|
# env:
|
|
# DOTNET_INSTALL_DIR: "/home/runner"
|
|
# permissions:
|
|
# contents: write
|
|
# packages: write
|
|
# steps:
|
|
# - name: 'Cleanup build folder'
|
|
# run: |
|
|
# rm ./* -r || true
|
|
# rm ./.??* -r || true
|
|
#
|
|
# - uses: actions/setup-dotnet@v3
|
|
# with:
|
|
# dotnet-version: 8.0.x
|
|
#
|
|
# - name: Set up GitVersion
|
|
# uses: gittools/actions/gitversion/setup@v0.9.15
|
|
# with:
|
|
# versionSpec: '5.x'
|
|
#
|
|
# - name: Checkout code
|
|
# uses: actions/checkout@v3
|
|
# with:
|
|
# fetch-depth: 0
|
|
#
|
|
# - name: Execute GitVersion
|
|
# uses: gittools/actions/gitversion/execute@v0.9.15
|
|
# with:
|
|
# useConfigFile: true
|
|
# configFilePath: GitVersion.yml
|
|
#
|
|
# - name: login into registry
|
|
# run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u $ --password-stdin
|
|
#
|
|
# - name: Build image
|
|
# env:
|
|
# dockerfile: ./src/comissions.app.api/Dockerfile
|
|
# docker_image_name: ghcr.io/comissions-app/core-api
|
|
# run: |
|
|
# docker build --build-arg NUGET_SOURCE=https://nuget.pkg.github.com/data443/index.json --build-arg NUGET_API_KEY=${{ secrets.PACKAGE_TOKEN }} -t ${{ env.docker_image_name }}:${{ env.GitVersion_MajorMinorPatch }} -f ${{ env.dockerfile }} --force-rm .
|
|
# docker tag ${{ env.docker_image_name }}:${{ env.GitVersion_MajorMinorPatch }} ${{ env.docker_image_name }}:latest
|
|
# docker push --all-tags ${{ env.docker_image_name }}
|
|
#
|
|
# - name: Tag branch
|
|
# run: |
|
|
# git tag ${{ env.GitVersion_MajorMinorPatch }}
|
|
# git push origin ${{ env.GitVersion_MajorMinorPatch }}
|
|
|
|
|
|
name: on-push
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
|
|
jobs:
|
|
gitversion:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
semantic_version: ${{ steps.result.outputs.semver }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: gittools/actions/gitversion/setup@v1.1.1
|
|
with:
|
|
versionSpec: '5.x'
|
|
- uses: gittools/actions/gitversion/execute@v1.1.1
|
|
with:
|
|
useConfigFile: true
|
|
configFilePath: GitVersion.yml
|
|
- name: set output
|
|
id: result
|
|
run: echo "semver=$GitVersion_SemVer" >> "$GITHUB_OUTPUT"
|
|
- name: Tag branch
|
|
run: |
|
|
git tag $GitVersion_SemVer
|
|
git push origin $GitVersion_SemVer
|
|
build-cs-sdk:
|
|
runs-on: ubuntu-latest
|
|
needs: gitversion
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: 6.0.x
|
|
- name: Set Version
|
|
id: update
|
|
uses: vers-one/dotnet-project-version-updater@v1.6
|
|
with:
|
|
file: "src/comissions.app.sdk/comissions.app.sdk.csproj"
|
|
version: ${{ needs.gitversion.outputs.semantic_version }}
|
|
|
|
- name: Authorize NuGet Source
|
|
uses: StirlingLabs/GithubNugetAuthAction@main
|
|
with:
|
|
owner: data443
|
|
name: Data443
|
|
token: ${{secrets.DATA443_PACKAGE_SECRET}}
|
|
|
|
- name: Build SDK
|
|
run: dotnet build ./src/comissions.app.sdk/comissions.app.sdk.csproj --configuration Release -p:Version=${{needs.gitversion.outputs.semantic_version}}
|
|
|
|
- name: Push SDK
|
|
run: dotnet nuget push src/comissions.app.sdk/bin/Release/**/*.nupkg --skip-duplicate -s "https://nuget.pkg.github.com/data443/index.json" --api-key ${{secrets.GITHUB_TOKEN}}
|
|
|
|
build-js-sdk-build:
|
|
runs-on: ubuntu-latest
|
|
needs: gitversion
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: 6.0.x
|
|
|
|
- name: Generate Swagger JSON
|
|
run: dotnet build ./src/comissions.app.api/comissions.app.api.csproj --configuration Release
|
|
|
|
- name: Generate code
|
|
uses: hatamiarash7/openapi-generator@v0.2.0
|
|
with:
|
|
generator: javascript
|
|
openapi-file: src/comissions.app.sdk/swagger.json
|
|
output-dir: ./javascript-client/
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 18
|
|
registry-url: 'https://npm.pkg.github.com'
|
|
node-auth-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: "Install Babel"
|
|
run: npm install @babel/core @babel/cli @babel/preset-env @babel/plugin-proposal-class-properties @babel/plugin-proposal-json-strings @babel/plugin-proposal-decorators @babel/plugin-proposal-function-sent
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
cd javascript-client
|
|
npm install
|
|
|
|
- name: Update dependencies
|
|
run: |
|
|
cd javascript-client
|
|
npm update
|
|
|
|
- name: Run Tests
|
|
run: |
|
|
cd javascript-client
|
|
npm test
|
|
|
|
- name: Update my-file.json description
|
|
uses: jossef/action-set-json-field@v2.1
|
|
with:
|
|
file: javascript-client/package.json
|
|
field: name
|
|
value: "@D4M13N-D3V/comissions.app.sdk"
|
|
|
|
- name: 'Change vVersion'
|
|
uses: reedyuk/npm-version@1.1.1
|
|
with:
|
|
version: '${{needs.gitversion.outputs.semantic_version}}'
|
|
package: 'javascript-client/'
|
|
git-tag-version: 'false'
|
|
|
|
- uses: JS-DevTools/npm-publish@v3
|
|
with:
|
|
package : javascript-client/
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
registry: "https://npm.pkg.github.com"
|
|
|
|
- name: Create Release
|
|
id: create_release
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
uses: actions/create-release@v1
|
|
with:
|
|
tag_name: v${{ needs.gitversion.outputs.semantic_version }}
|
|
release_name: SDK
|
|
draft: false
|
|
prerelease: false
|
|
body: Release of SDK version ${{ needs.gitversion.outputs.semantic_version }}
|
|
|
|
- name: Zip JavaScript client folder
|
|
run: zip -r dim.api.sdk.zip javascript-client
|
|
|
|
- name: Upload Assets
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: ./dim.api.sdk.zip
|
|
asset_name: documentation_and_source_code.zip
|
|
asset_content_type: application/zip
|
|
|
|
- name: Delete unnecessary files in javascript-client folder
|
|
run: |
|
|
find javascript-client -type f ! -name "*.md" -delete
|
|
|
|
- name: Rename .md files to .html
|
|
run: |
|
|
find javascript-client -type f -name "*.md" -exec bash -c 'mv "$0" "${0%.md}.html"' {} \;
|
|
|
|
- name: Add script tag to HTML files
|
|
run: |
|
|
find javascript-client -type f -name "*.html" -exec sed -i '1i<script src="https://rawcdn.githack.com/oscarmorrison/md-page/master/md-page.js"></script><noscript>' {} \;
|
|
|
|
- name: Rename readme.html to index.html
|
|
run: |
|
|
mv javascript-client/README.html javascript-client/index.html
|
|
|
|
- name: Replace .md with .html in index.html
|
|
run: |
|
|
sed -i 's/\.md/\.html/g' javascript-client/index.html
|
|
|
|
- name: Deploy to GitHub Pages
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_dir: javascript-client
|
|
publish_branch: gh-pages
|
|
enable_jekyll: false
|
|
enable_html: true
|
|
ext: md
|
|
|
|
|
|
|
|
build-image:
|
|
runs-on: ubuntu-latest
|
|
needs: gitversion
|
|
strategy:
|
|
matrix:
|
|
platform: [amd64, arm64]
|
|
steps:
|
|
- name: 'Cleanup build folder'
|
|
run: |
|
|
rm ./* -r || true
|
|
rm ./.??* -r || true
|
|
|
|
- name: login into registry
|
|
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u $ --password-stdin
|
|
|
|
- name: Build image
|
|
env:
|
|
dockerfile: ./src/comissions.app.api/Dockerfile
|
|
docker_image_name: ghcr.io/comissions-app/comissions-api-${{ matrix.platform }}
|
|
run: |
|
|
docker build --build-arg NUGET_SOURCE=https://nuget.pkg.github.com/data443/index.json --build-arg NUGET_API_KEY=${{ secrets.PACKAGE_TOKEN }} --platform linux/${{ matrix.platform }} -t ${{ env.docker_image_name }}:${{ env.GitVersion_MajorMinorPatch }} -f ${{ env.dockerfile }} --force-rm .
|
|
docker tag ${{ env.docker_image_name }}:${{ needs.gitversion.outputs.semantic_version }} ${{ env.docker_image_name }}:latest
|
|
docker push --all-tags ${{ env.docker_image_name }}
|
|
|
|
- name: Tag branch
|
|
run: |
|
|
git tag ${{ needs.gitversion.outputs.semantic_version }}
|
|
git push origin ${{ needs.gitversion.outputs.semantic_version }} |