KenyaEMR CI #862
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: KenyaEMR CI | |
on: | |
push: | |
branches: | |
- main | |
- feat/fixCI | |
release: | |
types: [published] | |
workflow_dispatch: | |
jobs: | |
build_and_deploy: | |
name: Build and Deploy | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node: [18.x] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Execute Development Build Script | |
run: | | |
chmod +x ./dev-build.sh | |
echo "y" | ./dev-build.sh | |
- name: Compress frontend folder | |
run: tar -czvf frontend-${{ github.sha }}.tar.gz frontend/ | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: frontend-${{ github.sha }}.tar.gz | |
path: frontend-${{ github.sha }}.tar.gz | |
- name: Upload compressed frontend to server | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.CICD_HOST }} | |
username: ${{ secrets.CICD_USERNAME }} | |
port: ${{ secrets.PORT }} | |
key: ${{ secrets.CICD_SECRET }} | |
source: frontend-${{ github.sha }}.tar.gz | |
target: /apps/githubworkflows/OpenMrs3.0_assets/ | |
- name: Execute remote SSH commands | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.CICD_HOST }} | |
username: ${{ secrets.CICD_USERNAME }} | |
key: ${{ secrets.CICD_SECRET }} | |
port: ${{ secrets.PORT }} | |
script: | | |
cd /apps/githubworkflows/OpenMrs3.0_assets && | |
tar -xzf frontend-${{ github.sha }}.tar.gz && | |
sudo mv /var/lib/OpenMRS/frontend /var/lib/OpenMRS/frontend_old && | |
sudo mv frontend /var/lib/OpenMRS/ && | |
sudo rm -rf /var/lib/OpenMRS/frontend_old | |
# Activate staging server build dispatch | |
Trigger_server_build: | |
runs-on: ubuntu-latest | |
needs: build_and_deploy | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Invoke workflow without inputs. Don't wait for result | |
uses: aurelien-baudet/workflow-dispatch@v2 | |
with: | |
workflow: Deployin_to_stagin_server | |
repo: palladiumkenya/openmrs-config-kenyaemr | |
token: ${{ secrets.PERSONAL_TOKENS }} | |
wait-for-completion: false | |
release: | |
runs-on: ubuntu-latest | |
needs: build_and_deploy | |
if: github.event_name == 'release' | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
cache: "npm" | |
- name: Run production build script | |
run: | | |
chmod +x ./prod-build.sh | |
./prod-build.sh | |
- name: Compress frontend folder for release | |
run: tar -czvf frontend-release-${{ github.sha }}.tar.gz frontend/ | |
- name: Upload release artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: frontend-release-${{ github.sha }}.tar.gz | |
path: frontend-release-${{ github.sha }}.tar.gz |