Removing the version number to let the system work as designed #15
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: Build CI | |
on: | |
push: | |
branches: | |
- main | |
- 'feature/**' | |
paths: | |
- 'src/**' | |
- 'db/**' | |
- 'k8s/**' | |
- 'scripts/**' | |
- '.github/workflows/build.yml' | |
- 'gitversion.yml' | |
workflow_run: | |
workflows: [Spin the Version Number] | |
types: | |
- completed | |
env: | |
OCTOPUS_PROJECT_NAME: ${{ vars.OCTOPUS_PROJECT_NAME }} | |
OCTOPUS_FEATURE_BRANCH_CHANNEL: ${{ vars.OCTOPUS_FEATURE_BRANCH_CHANNEL }} | |
OCTOPUS_RELEASE_CHANNEL: ${{ vars.OCTOPUS_RELEASE_CHANNEL }} | |
OCTOPUS_SPACE: ${{ vars.OCTOPUS_SPACE }} | |
OCTOPUS_API_KEY: ${{ secrets.OCTOPUSSERVERAPIKEY }} | |
OCTOPUS_URL: ${{ vars.OCTOPUS_SERVER_URL }} | |
jobs: | |
build-and-push-application: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
dotnet-version: ['6.0.x'] | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
fetch-depth: '0' | |
- name: Install GitVersion | |
uses: gittools/actions/gitversion/setup@v1 | |
with: | |
versionSpec: 6.x | |
- id: determine_version | |
name: Determine Version | |
uses: gittools/actions/gitversion/execute@v1 | |
with: | |
additionalArguments: /config gitversion.yml | |
- name: Setup .NET SDK | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: ${{ matrix.dotnet-version }} | |
- name: Install dependencies | |
run: dotnet restore $GITHUB_WORKSPACE/src | |
- name: Build | |
run: dotnet build $GITHUB_WORKSPACE/src --configuration Release --no-restore | |
- name: Create artifacts folder | |
run: | | |
mkdir "$GITHUB_WORKSPACE/artifacts" | |
mkdir "$GITHUB_WORKSPACE/artifacts/OctopusSamples.OctoPetShop.Database" | |
- name: Publish OctoPetShopDatabase | |
run: dotnet publish src/OctopusSamples.OctoPetShop.Database/OctopusSamples.OctoPetShop.Database.csproj --configuration Release --no-restore --self-contained --output "$GITHUB_WORKSPACE/artifacts/OctopusSamples.OctoPetShop.Database" | |
- name: package database | |
id: "database_package" | |
uses: OctopusDeploy/create-zip-package-action@v3 | |
with: | |
package_id: PetShop.Database | |
version: "${{ steps.determine_version.outputs.FullSemVer }}" | |
base_path: "artifacts/OctopusSamples.OctoPetShop.Database" | |
files: "**/*" | |
output_folder: packaged | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PAT }} | |
- name: Build OctoPetShop web container | |
run: | | |
docker build ./src/OctopusSamples.OctoPetShop.Web --file ./src/OctopusSamples.OctoPetShop.Web/dockerfile --tag bobjwalker99/octopetshop-web:${{ steps.determine_version.outputs.FullSemVer }} | |
docker push bobjwalker99/octopetshop-web:${{ steps.determine_version.outputs.FullSemVer }} | |
- name: Build OctoPetShop product service container | |
run: | | |
docker build ./src/OctopusSamples.OctoPetShop.ProductService --file ./src/OctopusSamples.OctoPetShop.ProductService/dockerfile --tag bobjwalker99/octopetshop-productservice:${{ steps.determine_version.outputs.FullSemVer }} | |
docker push bobjwalker99/octopetshop-productservice:${{ steps.determine_version.outputs.FullSemVer }} | |
- name: Build OctoPetShop shopping cart container | |
run: | | |
docker build ./src/OctopusSamples.OctoPetShop.ShoppingCartService --file ./src/OctopusSamples.OctoPetShop.ShoppingCartService/dockerfile --tag bobjwalker99/octopetshop-shoppingcartservice:${{ steps.determine_version.outputs.FullSemVer }} | |
docker push bobjwalker99/octopetshop-shoppingcartservice:${{ steps.determine_version.outputs.FullSemVer }} | |
- name: push packages to Octopus | |
uses: OctopusDeploy/push-package-action@v3 | |
with: | |
packages: | | |
packaged/**/*.zip | |
- name: push build information to Octopus | |
uses: OctopusDeploy/push-build-information-action@v3 | |
with: | |
packages: | | |
PetShop.Database | |
bobjwalker99/octopetshop-web | |
bobjwalker99/octopetshop-productservice | |
bobjwalker99/octopetshop-shoppingcartservice | |
version: "${{ steps.determine_version.outputs.FullSemVer }}" | |
- name: create release | |
uses: OctopusDeploy/create-release-action@v3 | |
with: | |
project: ${{ env.OCTOPUS_PROJECT_NAME }} | |
channel: ${{ github.ref == 'refs/heads/main' && env.OCTOPUS_RELEASE_CHANNEL || env.OCTOPUS_FEATURE_BRANCH_CHANNEL }} | |
git_ref: ${{ (github.ref_type == 'tag' && github.event.repository.default_branch ) || (github.head_ref || github.ref) }} | |
git_commit: ${{ github.event.after || github.event.pull_request.head.sha }} | |
release_number: "${{ steps.determine_version.outputs.FullSemVer }}" | |
package_version: "${{ steps.determine_version.outputs.FullSemVer }}" | |
- name: Create Release for GitHub | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
tag_name: "${{ steps.determine_version.outputs.FullSemVer }}" | |
release_name: Release ${{ steps.determine_version.outputs.FullSemVer }} | |
body: | | |
Commit Message: ${{ github.event.head_commit.message }} | |
draft: false | |
prerelease: ${{ github.ref == 'refs/heads/main' && 'false' || 'true' }} | |