Bump UffizziCloud/preview-action from 2 to 3 #9
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: Uffizzi - Build PR Image | |
on: | |
pull_request: | |
types: [opened,synchronize,reopened,closed] | |
jobs: | |
build-meilisearch: | |
name: Build and push `meilisearch` | |
runs-on: ubuntu-latest | |
outputs: | |
tags: ${{ steps.meta.outputs.tags }} | |
if: ${{ github.event.action != 'closed' }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- run: sudo apt-get install musl-tools | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
target: x86_64-unknown-linux-musl | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@v2.2.1 | |
- name: Run cargo check without any default features | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --target x86_64-unknown-linux-musl --release | |
- name: Remove dockerignore so we can use the target folder in our docker build | |
run: rm -f .dockerignore | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate UUID image name | |
id: uuid | |
run: echo "UUID_TAG=$(uuidgen)" >> $GITHUB_ENV | |
- name: Docker metadata | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: registry.uffizzi.com/${{ env.UUID_TAG }} | |
tags: | | |
type=raw,value=60d | |
- name: Build Image | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./ | |
file: .github/uffizzi/Dockerfile | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
push: true | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
render-compose-file: | |
name: Render Docker Compose File | |
# Pass output of this workflow to another triggered by `workflow_run` event. | |
runs-on: ubuntu-latest | |
needs: | |
- build-meilisearch | |
outputs: | |
compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }} | |
steps: | |
- name: Checkout git repo | |
uses: actions/checkout@v3 | |
- name: Render Compose File | |
run: | | |
MEILISEARCH_IMAGE=$(echo ${{ needs.build-meilisearch.outputs.tags }}) | |
export MEILISEARCH_IMAGE | |
# Render simple template from environment variables. | |
envsubst < .github/uffizzi/docker-compose.uffizzi.yml > docker-compose.rendered.yml | |
cat docker-compose.rendered.yml | |
- name: Upload Rendered Compose File as Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: preview-spec | |
path: docker-compose.rendered.yml | |
retention-days: 2 | |
- name: Serialize PR Event to File | |
run: | | |
cat << EOF > event.json | |
${{ toJSON(github.event) }} | |
EOF | |
- name: Upload PR Event as Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: preview-spec | |
path: event.json | |
retention-days: 2 | |
delete-preview: | |
name: Call for Preview Deletion | |
runs-on: ubuntu-latest | |
if: ${{ github.event.action == 'closed' }} | |
steps: | |
# If this PR is closing, we will not render a compose file nor pass it to the next workflow. | |
- name: Serialize PR Event to File | |
run: | | |
cat << EOF > event.json | |
${{ toJSON(github.event) }} | |
EOF | |
- name: Upload PR Event as Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: preview-spec | |
path: event.json | |
retention-days: 2 |