Copy github workflows
This commit is contained in:
54
.github/workflows/build.yml
vendored
Normal file
54
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
name: BuildApp
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ ci-cd ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ ci-cd ]
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
build-frontend:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@master
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
- name: Install Angular CLI
|
||||||
|
run: yarn global add @angular/cli
|
||||||
|
- name: Configure ng to use yarn
|
||||||
|
run: ng config --global cli.packageManager yarn
|
||||||
|
- name: Yarn install
|
||||||
|
working-directory: Frontend
|
||||||
|
run: yarn install
|
||||||
|
- name: Build Angular
|
||||||
|
working-directory: Frontend
|
||||||
|
run: ng build --configuration=production
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: frontend
|
||||||
|
path: Frontend/dist
|
||||||
|
build-backend:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Setup dotnet 6
|
||||||
|
uses: actions/setup-dotnet@v4
|
||||||
|
with:
|
||||||
|
dotnet-version: 8.0.x
|
||||||
|
- name: Install dependencies
|
||||||
|
working-directory: WebAPI
|
||||||
|
run: dotnet restore
|
||||||
|
- name: Build
|
||||||
|
working-directory: WebAPI
|
||||||
|
run: |
|
||||||
|
dotnet build --configuration Release --no-restore
|
||||||
|
dotnet publish --configuration Release --framework net8.0 --runtime linux-x64 --self-contained false --output ../build_webapi
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: webapi
|
||||||
|
path: build_webapi
|
||||||
|
|
||||||
|
|
||||||
16
.github/workflows/main.yml
vendored
16
.github/workflows/main.yml
vendored
@@ -1,16 +0,0 @@
|
|||||||
name: Angular CI
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
workflow_dispatch:
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: npm install and npm run CI commands
|
|
||||||
run: |
|
|
||||||
npm i
|
|
||||||
ng build --configuration=production
|
|
||||||
54
.github/workflows/release.yml
vendored
Normal file
54
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
name: Release Pipeline
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch: # Allows manual triggering
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
name: Release to Server
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Step 1: Checkout the code
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# Step 2: Download build artifacts from another workflow (e.g., build pipeline)
|
||||||
|
- name: Download Frontend Artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: frontend # Name of the artifact created in the build pipeline
|
||||||
|
path: ./artifact # Where to download the artifact
|
||||||
|
|
||||||
|
# Step 2: Download build artifacts from another workflow (e.g., build pipeline)
|
||||||
|
- name: Download Backend Artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: backend # Name of the artifact created in the build pipeline
|
||||||
|
path: ./artifact # Where to download the artifact
|
||||||
|
|
||||||
|
# Step 3: Replace tokens in files with GitHub secrets
|
||||||
|
#- name: Replace tokens in files
|
||||||
|
# run: |
|
||||||
|
# find ./artifact -type f -exec sed -i "s/{{TOKEN_SECRET}}/${{ secrets.TOKEN_SECRET }}/g" {} \;
|
||||||
|
|
||||||
|
# Step 4: Compress the artifact folder
|
||||||
|
#- name: Compress files
|
||||||
|
# run: |
|
||||||
|
# tar -czvf release_artifact.tar.gz -C ./artifact .
|
||||||
|
|
||||||
|
# Step 5: Set up SSH agent with the private key
|
||||||
|
#- name: Setup SSH
|
||||||
|
# uses: webfactory/ssh-agent@v0.5.4
|
||||||
|
# with:
|
||||||
|
# ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||||
|
|
||||||
|
# Step 6: Upload the compressed file to the remote server via SCP
|
||||||
|
#- name: Upload to remote server
|
||||||
|
# run: |
|
||||||
|
# scp release_artifact.tar.gz ${{ secrets.REMOTE_USER }}@${{ secrets.REMOTE_HOST }}:/path/to/destination
|
||||||
|
|
||||||
|
# Step 7: Execute a script on the remote server
|
||||||
|
#- name: Execute remote script
|
||||||
|
# run: |
|
||||||
|
# ssh ${{ secrets.REMOTE_USER }}@${{ secrets.REMOTE_HOST }} "bash /path/to/destination/deploy.sh"
|
||||||
Reference in New Issue
Block a user