Refactor cmake build system #22
Workflow file for this run
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: build PerfFlowAspect | |
on: | |
# Publish packages on release | |
release: | |
types: [published] | |
# We might want to remove this, OR provide a base container | |
# that will more quickly build from, or use cache | |
pull_request: [] | |
# On push to main we build and deploy images | |
push: | |
branches: | |
- main | |
jobs: | |
build: | |
permissions: | |
packages: write | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
container: [[".devcontainer/Dockerfile", ".", "ghcr.io/flux-framework/perf-flow-aspect-base"]] | |
# TODO add the container with PerfFlowAspect after base is built | |
name: Build ${{ matrix.container[2] }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Make Space For Build | |
run: | | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /usr/local/lib/android | |
sudo rm -rf /opt/ghc | |
- name: Pull Layers | |
env: | |
container: ${{ matrix.container[2] }} | |
run: docker pull ${container} || echo "No layers to pull for ${container}" | |
- name: Build Container | |
env: | |
dockerfile: ${{ matrix.container[0] }} | |
container: ${{ matrix.container[2] }} | |
context: ${{ matrix.container[1] }} | |
run: docker build -f ${dockerfile} -t ${container} ${context} | |
- name: GHCR Login | |
if: (github.event_name != 'pull_request') | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Tag and Push Release Image | |
if: (github.event_name == 'release') | |
env: | |
container: ${{ matrix.container[2] }} | |
run: | | |
tag=${GITHUB_REF#refs/tags/} | |
echo "Tagging and releasing ${container}:${tag}" | |
docker tag ${container}:latest ${container}:${tag} | |
docker push ${container}:${tag} | |
- name: Deploy | |
if: (github.event_name != 'pull_request') | |
run: docker push ${container}:latest |