Skip to content

Docker Image (#56)

Docker Image (#56) #51

Workflow file for this run

name: Deploy
on:
push:
tags:
- "v*.*.*"
workflow_dispatch: {}
jobs:
build:
strategy:
matrix:
python-version: [ "3.10" ]
os:
# --8<-- [start:oses]
- "ubuntu-22.04"
- "windows-latest"
- "macos-latest" # M1 Mac
- "macos-13" # Intel Mac
# --8<-- [end:oses]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- uses: extractions/setup-just@v2
- run: just install
- run: just build
if: matrix.os == 'ubuntu-22.04'
- uses: actions/upload-artifact@v4
if: matrix.os == 'ubuntu-22.04'
with:
name: dist
path: dist/
- run: just build-binary
- uses: actions/upload-artifact@v4
with:
path: |
orbiter-*
name: binary-${{ matrix.os }}
retention-days: 5
- run: just deploy-docs
if: matrix.os == 'ubuntu-22.04'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
gh_release:
needs: build
runs-on: "ubuntu-latest"
steps:
- uses: actions/download-artifact@v4
- run: ls -R
- uses: softprops/action-gh-release@v2
with:
prerelease: true
generate_release_notes: true
files: |
binary-*/orbiter-*
dist/*
pypi_release:
needs: build
runs-on: "ubuntu-latest"
environment:
name: pypi
url: https://pypi.org/p/astronomer-orbiter
permissions:
id-token:
write
steps:
- uses: actions/download-artifact@v4
- run: ls -R
- uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: true
docker_release:
needs: build
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
- uses: docker/login-action@v3.3.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/metadata-action@v5.7.0
id: meta
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6.15.0
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}