Skip to content

Commit

Permalink
ci: add GitHub Actions workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
imiric committed Apr 21, 2024
1 parent 37e341a commit 692f434
Showing 1 changed file with 108 additions and 0 deletions.
108 changes: 108 additions & 0 deletions .github/workflows/ci-earthly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: CI
on:
push:
branches:
- main
tags:
- v*
pull_request:

defaults:
run:
shell: bash

jobs:

lint:
runs-on: ubuntu-22.04
steps:
- name: Setup Earthly
uses: earthly/actions/setup-earthly@v1
with:
version: v0.8.8
- name: Checkout code
uses: actions/checkout@v4
with:
# Needed for `golangci-lint --new-from-rev`
fetch-depth: 0
# Needed for Earthly tagging to work
- name: Put back the git branch into git
run: |
branch=""
if [ -n "$GITHUB_HEAD_REF" ]; then
branch="$GITHUB_HEAD_REF"
else
branch="${GITHUB_REF##*/}"
fi
git checkout -b "$branch" || true
- name: Run +lint target
env:
EARTHLY_TOKEN: ${{ secrets.EARTHLY_TOKEN }}
EARTHLY_ORG: ${{ secrets.EARTHLY_ORG }}
run: earthly --ci --output --sat disco --push +lint
- name: Upload golangci-lint report
uses: actions/upload-artifact@v4
with:
name: golangci-lint-${{ github.run_id }}_${{ github.run_attempt }}
retention-days: 30
path: golangci-lint-*.txt

test:
runs-on: ubuntu-22.04
steps:
- name: Setup Earthly
uses: earthly/actions/setup-earthly@v1
with:
version: v0.8.8
- name: Checkout code
uses: actions/checkout@v4
# Needed for Earthly tagging to work
- name: Put back the git branch into git
run: |
branch=""
if [ -n "$GITHUB_HEAD_REF" ]; then
branch="$GITHUB_HEAD_REF"
else
branch="${GITHUB_REF##*/}"
fi
git checkout -b "$branch" || true
- name: Run +test target
env:
EARTHLY_TOKEN: ${{ secrets.EARTHLY_TOKEN }}
EARTHLY_ORG: ${{ secrets.EARTHLY_ORG }}
run: earthly --ci --output --sat disco --push +test

publish:
if: ${{ startsWith(github.ref, 'refs/tags/v') || github.ref_name == 'main' }}
needs: [lint, test]
runs-on: ubuntu-22.04
steps:
- name: Setup Earthly
uses: earthly/actions/setup-earthly@v1
with:
version: v0.8.8
- name: Checkout code
uses: actions/checkout@v4
# Needed for Earthly tagging to work
- name: Put back the git branch into git
run: |
branch=""
if [ -n "$GITHUB_HEAD_REF" ]; then
branch="$GITHUB_HEAD_REF"
else
branch="${GITHUB_REF##*/}"
fi
git checkout -b "$branch" || true
- name: Docker Login
run: docker login --username "${{ secrets.DOCKERHUB_USERNAME }}" --password "${{ secrets.DOCKERHUB_TOKEN }}"
- name: Run +publish target
env:
EARTHLY_TOKEN: ${{ secrets.EARTHLY_TOKEN }}
EARTHLY_ORG: ${{ secrets.EARTHLY_ORG }}
run: earthly --ci --output --push --secret GH_TOKEN="${{ secrets.EARTHLY_GH_TOKEN }}" --sat disco +publish
- name: Upload packages
uses: actions/upload-artifact@v4
with:
name: packages
path: dist/
retention-days: 7

0 comments on commit 692f434

Please sign in to comment.