Update workflow to use latest action versions and keys #4
This file contains hidden or 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: Deploy to Oracle Cloud Container Instance | |
on: | |
push: | |
branches: [ main ] | |
workflow_dispatch: | |
jobs: | |
build-and-deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up OCI CLI | |
uses: oracle-actions/configure-oci-credentials@v1 | |
with: | |
key-id: ${{ secrets.OCI_USER_OCID }} | |
fingerprint: ${{ secrets.OCI_FINGERPRINT }} | |
key-content: ${{ secrets.OCI_PRIVATE_KEY }} | |
tenancy-id: ${{ secrets.OCI_TENANCY_OCID }} | |
region: ${{ secrets.OCI_REGION }} | |
- name: Login to Oracle Cloud Container Registry | |
run: | | |
oci artifacts container repository login --username ${{ secrets.OCI_USER_OCID }} --password-stdin <<< "${{ secrets.OCI_AUTH_TOKEN }}" --region ${{ secrets.OCI_REGION }} --registry ${{ secrets.OCI_REGISTRY }} | |
- name: Build and Push Docker Image | |
run: | | |
# Get timestamp for unique tag | |
timestamp=$(date +%Y%m%d%H%M%S) | |
# Build the Docker image | |
docker build -t ${{ secrets.OCI_REGISTRY }}/${{ secrets.REPOSITORY_NAME }}:$timestamp -t ${{ secrets.OCI_REGISTRY }}/${{ secrets.REPOSITORY_NAME }}:latest . | |
# Push the Docker image | |
docker push ${{ secrets.OCI_REGISTRY }}/${{ secrets.REPOSITORY_NAME }}:$timestamp | |
docker push ${{ secrets.OCI_REGISTRY }}/${{ secrets.REPOSITORY_NAME }}:latest | |
# Save the image tag for later use | |
echo "IMAGE_TAG=$timestamp" >> $GITHUB_ENV | |
- name: Deploy to Oracle Cloud Container Instance | |
run: | | |
# Create or update container instance | |
oci container-instances container-instance create \ | |
--compartment-id ${{ secrets.OCI_COMPARTMENT_ID }} \ | |
--availability-domain ${{ secrets.OCI_AVAILABILITY_DOMAIN }} \ | |
--display-name "admin-hub-api" \ | |
--shape "VM.Standard.E2.1.Micro" \ | |
--shape-config '{"ocpus": 1, "memoryInGBs": 1}' \ | |
--vnics '[{"subnetId": "${{ secrets.OCI_SUBNET_ID }}", "displayName": "primary-vnic"}]' | |
--containers '[{ | |
"displayName": "admin-hub-api", | |
"imageUrl": "${{ secrets.OCI_REGISTRY }}/${{ secrets.REPOSITORY_NAME }}:${{ env.IMAGE_TAG }}", | |
"isResourcePrincipalDisabled": true | |
}]' \ | |
--wait-for-state SUCCEEDED |