Skip to content

Commit

Permalink
Add new GitHub Actions test and build steps
Browse files Browse the repository at this point in the history
  • Loading branch information
mfisher87 committed Jul 26, 2023
1 parent 73ce5a4 commit 4b0f469
Show file tree
Hide file tree
Showing 2 changed files with 113 additions and 0 deletions.
61 changes: 61 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: "Build and release container image"

on:
push:
branches:
- "main"
release:
types:
- "published"


# Default to bash in login mode for all steps; key to activating conda
# environment!
# https://github.com/mamba-org/provision-with-micromamba#IMPORTANT
defaults:
run:
shell: "bash -l {0}"



jobs:

build-and-release-image:
name: "Build and release container image"
runs-on: "ubuntu-latest"
needs: ["test"]
env:
IMAGE_NAME: "nsidc/usaon-vta-survey"
# GitHub Actions expressions don't have great conditional support, so
# writing a ternary expression looks a lot like bash. In Python, this
# would read as:
# github.release.tag_name if github.event_name == 'release' else 'latest'
# https://docs.github.com/en/actions/learn-github-actions/expressions
IMAGE_TAG: "${{ github.event_name == 'release' && github.release.tag_name || 'latest' }}"
steps:
- name: "Check out repository"
uses: "actions/checkout@v3"

- name: "Build container image"
run: |
docker build -t "${IMAGE_NAME}:${IMAGE_TAG}" .
- name: "DockerHub login"
uses: "docker/login-action@v2"
with:
username: "${{secrets.DOCKER_USER}}"
password: "${{secrets.DOCKER_PASS}}"

- name: "GHCR login"
uses: "docker/login-action@v2"
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
password: "${{ secrets.GITHUB_TOKEN }}"

- name: "Push to DockerHub and GHCR"
run: |
docker push "${IMAGE_NAME}:${IMAGE_TAG}"
docker tag "${IMAGE_NAME}:${IMAGE_TAG}" "ghcr.io/${IMAGE_NAME}:${IMAGE_TAG}"
docker push "ghcr.io/${IMAGE_NAME}:${IMAGE_TAG}"
52 changes: 52 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: "Test"

on:
push:
branches:
- "main"
pull_request:


# Default to bash in login mode; key to activating conda environment
# https://github.com/mamba-org/provision-with-micromamba#IMPORTANT
defaults:
run:
shell: "bash -l {0}"


jobs:
test:
name: "Run tests"
runs-on: "ubuntu-latest"
steps:
- name: "Check out repository"
uses: "actions/checkout@v3"

- name: "Install Conda environment"
uses: "mamba-org/setup-micromamba@v1"
with:
environment-file: "conda-lock.yml"
# When using a lock-file, we have to set an environment name.
environment-name: "usaon-vta-survey-ci"
cache-environment: true
# Increase this key to trigger cache invalidation
cache-environment-key: 0

- name: "Run pre-commit checks"
run: "pre-commit run --all-files --show-diff-on-failure --color always"

- name: "Run tests"
run: "inv test"


test-build:
name: "Run test-build of container image"
runs-on: "ubuntu-latest"
needs: ["test"]
steps:
- name: "Check out repository"
uses: "actions/checkout@v3"

- name: "Test-build container image"
run: |
docker build .

0 comments on commit 4b0f469

Please sign in to comment.