Publish container to ghcr.io (#101)

This commit is contained in:
DG
2021-08-21 14:21:38 -04:00
committed by GitHub
parent b8325d72fc
commit e061b506d1
6 changed files with 54 additions and 27 deletions

View File

@@ -1,6 +1,6 @@
# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md # Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md
on: [push, pull_request] on: [pull_request]
name: ci name: ci

View File

@@ -1,27 +1,50 @@
name: Publish Docker image name: Publish Container
on: on: [push]
push:
tags:
- v*
jobs: jobs:
push_to_registry: push_to_registry:
name: Push Docker image to Docker Hub name: Push to container registry
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out the repo - uses: actions/checkout@v2
uses: actions/checkout@v2
- name: Publish version to Registry - name: Prepare
uses: elgohr/Publish-Docker-Github-Action@master id: prep
with: run: |
name: davegallant/rfd-notify IMAGE_NAME=ghcr.io/${{ github.repository_owner }}/rfd-notify
username: ${{ secrets.DOCKER_USERNAME }} VERSION=${GITHUB_REF##*/}
password: ${{ secrets.DOCKER_PASSWORD }}
tag_semver: true if [[ $GITHUB_REF == refs/heads/main ]]; then
- name: Publish latest to Registry VERSION=latest
uses: elgohr/Publish-Docker-Github-Action@master fi
with:
name: davegallant/rfd-notify if [[ $GITHUB_REF == refs/tags/* ]]; then
username: ${{ secrets.DOCKER_USERNAME }} VERSION=${GITHUB_REF#refs/tags/v}
password: ${{ secrets.DOCKER_PASSWORD }} fi
tags: "latest"
TAGS="${IMAGE_NAME}:${VERSION}"
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
TAGS="$TAGS,${IMAGE_NAME}:latest"
fi
echo ::set-output name=tags::${TAGS}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Packages Docker Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push to Packages
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.prep.outputs.tags }}

View File

@@ -26,10 +26,14 @@ jobs:
- uses: hecrj/setup-rust-action@v1 - uses: hecrj/setup-rust-action@v1
with: with:
rust-version: stable rust-version: stable
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- name: Build - name: Build
run: cargo build --release --locked run: cargo build --release --locked
- name: Upload binaries to release - name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release uses: svenstaro/upload-release-action@v1-release
with: with:
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,4 +1,4 @@
FROM rust@sha256:b2fd2fcc9d28c1a6dc59c3b0b37913fd9a326c8e457e50617e1156fc1ad51e34 as build FROM rust@sha256:f91b3dae52c0d99302366331e36cf6af8a923d36c68577df1f4d5a7c2721ca90 as build
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \ RUN apt-get update && \

View File

@@ -1,3 +1,3 @@
FROM davegallant/rfd-notify:0.2.0 FROM ghcr.io/davegallant/rfd-notify:latest
ENTRYPOINT ["/rfd-notify", "-c", "config.yaml"] ENTRYPOINT ["/rfd-notify", "-c", "config.yaml"]

View File

@@ -59,7 +59,7 @@ pub async fn get_topic(topic_id: u32) -> Result<String, Box<dyn std::error::Erro
} }
pub fn parse_hot_deals(response: &str) -> Deals { pub fn parse_hot_deals(response: &str) -> Deals {
serde_json::from_str(&response).unwrap() serde_json::from_str(response).unwrap()
} }
pub fn parse_posts(response: String) -> Posts { pub fn parse_posts(response: String) -> Posts {
@@ -89,7 +89,7 @@ pub fn match_deals(deals: Deals, config: Config, dbpath: &str) {
) )
} else if topic.offer.dealer_name.is_some() { } else if topic.offer.dealer_name.is_some() {
let dealer_name = topic.offer.dealer_name.as_ref().unwrap(); let dealer_name = topic.offer.dealer_name.as_ref().unwrap();
if re.is_match(&dealer_name) { if re.is_match(dealer_name) {
found_match = true; found_match = true;
info!( info!(
"Expression '{}' matched dealer: {}", "Expression '{}' matched dealer: {}",