You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.4 KiB
117 lines
3.4 KiB
--- |
|
name: Build |
|
|
|
on: |
|
push: |
|
paths-ignore: |
|
- ".github/workflows/**" |
|
workflow_dispatch: |
|
|
|
jobs: |
|
cloc: |
|
name: CLOC |
|
runs-on: ubuntu-22.04 |
|
steps: |
|
- name: Checkout repo |
|
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 |
|
|
|
- name: Install cloc |
|
run: sudo apt update && sudo apt install -y cloc |
|
|
|
- name: Print lines of code |
|
run: cloc --include-lang C#,SQL,Razor,"Bourne Shell",PowerShell,HTML,CSS,Sass,JavaScript,TypeScript --vcs git |
|
|
|
|
|
build-artifacts: |
|
name: Build artifacts |
|
runs-on: ubuntu-22.04 |
|
steps: |
|
- name: Checkout repo |
|
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 |
|
|
|
- name: Print environment |
|
run: | |
|
whoami |
|
dotnet --info |
|
echo "GitHub ref: $GITHUB_REF" |
|
echo "GitHub event: $GITHUB_EVENT" |
|
|
|
- name: Restore/Clean service |
|
working-directory: src/KeyConnector |
|
run: | |
|
echo "Restore" |
|
dotnet restore |
|
echo "Clean" |
|
dotnet clean -c "Release" -o obj/build-output/publish |
|
|
|
- name: Publish service |
|
working-directory: src/KeyConnector |
|
run: | |
|
echo "Publish" |
|
dotnet publish -c "Release" -o obj/build-output/publish |
|
cd obj/build-output/publish |
|
zip -r KeyConnector.zip . |
|
mv KeyConnector.zip ../../../ |
|
pwd |
|
ls -atlh ../../../ |
|
|
|
- name: Upload service artifact |
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 |
|
with: |
|
name: KeyConnector.zip |
|
path: src/KeyConnector/KeyConnector.zip |
|
if-no-files-found: error |
|
|
|
|
|
build-docker: |
|
name: Build Docker images |
|
runs-on: ubuntu-22.04 |
|
needs: build-artifacts |
|
env: |
|
_AZ_REGISTRY: bitwardenprod.azurecr.io |
|
_PROJECT_NAME: key-connector |
|
steps: |
|
- name: Checkout repo |
|
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 |
|
|
|
- name: Login to Azure - PROD Subscription |
|
uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0 |
|
with: |
|
creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} |
|
|
|
- name: Login to PROD ACR |
|
run: az acr login -n ${_AZ_REGISTRY%.azurecr.io} |
|
|
|
- name: Generate Docker image tag |
|
id: tag |
|
run: | |
|
IMAGE_TAG=$(echo "${GITHUB_REF:11}" | sed "s#/#-#g") # slash safe branch name |
|
if [[ "$IMAGE_TAG" == "main" ]]; then |
|
IMAGE_TAG=dev |
|
fi |
|
echo "image_tag=$IMAGE_TAG" >> $GITHUB_OUTPUT |
|
|
|
- name: Generate image full name |
|
id: image-name |
|
env: |
|
IMAGE_TAG: ${{ steps.tag.outputs.image_tag }} |
|
run: echo "name=${_AZ_REGISTRY}/${_PROJECT_NAME}:${IMAGE_TAG}" >> $GITHUB_OUTPUT |
|
|
|
- name: Get build artifact |
|
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 |
|
with: |
|
name: KeyConnector.zip |
|
|
|
- name: Setup build artifact |
|
run: | |
|
mkdir -p src/KeyConnector/obj/build-output/publish |
|
unzip KeyConnector.zip -d src/KeyConnector/obj/build-output/publish |
|
|
|
- name: Build Docker image |
|
uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 |
|
with: |
|
context: src/KeyConnector |
|
file: src/KeyConnector/Dockerfile |
|
platforms: linux/amd64 |
|
push: true |
|
tags: ${{ steps.image-name.outputs.name }}
|
|
|