Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new GitHub Actions test and build steps #54

Merged
merged 2 commits into from
Jul 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 0 additions & 97 deletions .circleci/config.yml

This file was deleted.

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' }}"
MattF-NSIDC marked this conversation as resolved.
Show resolved Hide resolved
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 .