Merge pull request #187 from neutrons/build_version_tag #63
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: Wheel + Docker publish | |
on: | |
push: | |
branches: | |
- next | |
- qa | |
- main | |
env: | |
# Use docker.io for Docker Hub if empty | |
REGISTRY: ghcr.io | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
- name: Setup libmamba solver | |
run: | | |
conda install -n base conda-libmamba-solver | |
conda config --set solver libmamba | |
- name: Install requirements | |
run: | | |
# --quiet should turn off progress bars to make logs more readable | |
conda env create --file conda_environment.yml --quiet | |
conda activate webmon | |
conda env update --file conda_development.yml --quiet | |
- name: Build wheels | |
run: | | |
conda activate webmon | |
make wheel/all | |
- name: Create tag version | |
id: tag | |
run: | | |
conda activate webmon | |
echo "tag=$(versioningit src/webmon_app)" >> $GITHUB_OUTPUT | |
- name: Create latest tag version | |
id: latest_tag | |
run: | | |
case ${{ github.ref }} in | |
refs/heads/next) | |
echo "latest_tag=latest-dev" >> $GITHUB_OUTPUT | |
;; | |
refs/heads/qa) | |
echo "latest_tag=latest-test" >> $GITHUB_OUTPUT | |
;; | |
refs/heads/main) | |
echo "latest_tag=latest-prod" >> $GITHUB_OUTPUT | |
;; | |
*) | |
exit 1 | |
;; | |
esac | |
- name: Upload wheels | |
uses: softprops/action-gh-release@v2 | |
if: ${{ github.ref == 'refs/heads/main' }} | |
with: | |
tag_name: ${{ steps.tag.outputs.tag }} | |
files: src/*/dist/*.whl | |
- name: Check tag names | |
run: | | |
echo ${{ steps.latest_tag.outputs.latest_tag }} | |
echo ${{ steps.tag.outputs.tag }} | |
- name: Build test data for autoreducer | |
run: make SNSdata.tar.gz | |
- name: Log into registry ${{ env.REGISTRY }} | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push webmonchow | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: Dockerfile.webmonchow | |
tags: | | |
${{ env.REGISTRY }}/${{ github.repository }}/webmonchow:${{ steps.latest_tag.outputs.latest_tag }} | |
${{ env.REGISTRY }}/${{ github.repository }}/webmonchow:${{ steps.tag.outputs.tag }} | |
push: true | |
- name: Build and push Autoreducer | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: Dockerfile.autoreducer | |
tags: | | |
${{ env.REGISTRY }}/${{ github.repository }}/autoreducer:${{ steps.latest_tag.outputs.latest_tag }} | |
${{ env.REGISTRY }}/${{ github.repository }}/autoreducer:${{ steps.tag.outputs.tag }} | |
push: true | |
- name: Build and push Dasmon | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: Dockerfile.dasmon | |
tags: | | |
${{ env.REGISTRY }}/${{ github.repository }}/dasmon:${{ steps.latest_tag.outputs.latest_tag }} | |
${{ env.REGISTRY }}/${{ github.repository }}/dasmon:${{ steps.tag.outputs.tag }} | |
push: true | |
- name: Build and push Webmon | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: Dockerfile.webmon | |
tags: | | |
${{ env.REGISTRY }}/${{ github.repository }}/webmon:${{ steps.latest_tag.outputs.latest_tag }} | |
${{ env.REGISTRY }}/${{ github.repository }}/webmon:${{ steps.tag.outputs.tag }} | |
push: true | |
- name: Build and push Workflow | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: Dockerfile.workflow | |
tags: | | |
${{ env.REGISTRY }}/${{ github.repository }}/workflow:${{ steps.latest_tag.outputs.latest_tag }} | |
${{ env.REGISTRY }}/${{ github.repository }}/workflow:${{ steps.tag.outputs.tag }} | |
push: true |