Merge pull request #16 from NOAA-GFDL/auto-update-ppp #2
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: Docker Image CI/CD | ||
| # Trigger the workflow | ||
| on: | ||
| push: | ||
| branches: | ||
| - main # Trigger on push to the main branch | ||
| # Build container if these files are changed | ||
| paths: | ||
| - 'Dockerfile-ppp' | ||
| - 'ppp/runscript.sh' | ||
| - '.github/workflows/update_ppp_image.yaml' # Or if the workflow file itself is change | ||
| env: | ||
| REGISTRY: ghcr.io | ||
| IMAGE_NAME: ${{ NOAA-GFDL/HPC-ME/ppp }} | ||
| # Define the jobs to run | ||
| jobs: | ||
| build-and-push: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read # Allow checkout | ||
| packages: write # Allow pushing to GitHub Packages/GHCR | ||
| steps: | ||
| # Setup and Checkout | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
| # Determine Tags | ||
| - name: Extract metadata (tags) for Docker | ||
| id: meta | ||
| uses: docker/metadata-action@v5 | ||
| with: | ||
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||
| tags: | | ||
| type=sha,prefix=sha-,value=${{ github.sha }},enable=true,priority=1000 | ||
| type=raw,value=latest,enable=true | ||
| type=raw,value=2025.04,enable=true #Adding fre-cli tag manually for now | ||
| # Login to GHCR | ||
| - name: Log in to the Container registry | ||
| uses: docker/login-action@v3 | ||
| with: | ||
| registry: ${{ env.REGISTRY }} | ||
| username: ${{ github.actor }} | ||
| password: ${{ secrets.GITHUB_TOKEN } | ||
| # Build and Push | ||
| - name: Build and push Docker image | ||
| uses: docker/build-push-action@v5 | ||
| with: | ||
| context: . # Directory containing the Dockerfilei | ||
| file: ./Dockerfile-ppp | ||
| push: true | ||
| tags: ${{ steps.meta.outputs.tags }} | ||
| labels: ${{ steps.meta.outputs.labels }} | ||