Update docker/build-push-action action to v5 (#1001) #4358
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: CI | |
on: | |
push: { branches: [ main ] } | |
pull_request: | |
release: { types: [ published ] } | |
env: | |
REGISTRY: ghcr.io | |
IMAGE_NAME: ${{ github.repository }} | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: { go-version: '1.19' } | |
- run: | | |
mkdir -p ui/dist/img | |
touch ui/dist/index.html ui/dist/favicon.ico ui/dist/manifest.json ui/dist/img/fake.png | |
- uses: golangci/golangci-lint-action@v3 | |
with: { version: 'v1.52' } | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: { node-version: '14', cache: 'yarn', cache-dependency-path: 'ui/yarn.lock' } | |
- uses: actions/setup-go@v4 | |
with: { go-version: '1.19', cache: true } | |
- run: | | |
mkdir -p ui/dist/img | |
touch ui/dist/index.html ui/dist/favicon.ico ui/dist/manifest.json ui/dist/img/fake.png | |
- run: docker compose up --quiet-pull --detach | |
working-directory: dev | |
- name: Install ArangoDB | |
run: | | |
curl -OL https://download.arangodb.com/arangodb38/DEBIAN/Release.key | |
sudo apt-key add Release.key | |
sudo apt-add-repository 'deb https://download.arangodb.com/arangodb38/DEBIAN/ /' | |
sudo apt-get update -y && sudo apt-get -y install arangodb3 | |
- run: go test -coverprofile=cover.out -coverpkg=./... ./... | |
- run: go tool cover -func=cover.out | |
- uses: codecov/codecov-action@v3 | |
cypress: | |
strategy: | |
matrix: | |
test: [ tickets, templates, playbooks ] | |
auth: [ authelia ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: { go-version: '1.18' } | |
- uses: actions/setup-node@v3 | |
with: { node-version: '14' } | |
# run UI | |
- run: | | |
yarn install | |
yarn serve & | |
working-directory: ui | |
- run: curl --head -X GET --retry 60 --retry-all-errors --retry-delay 10 http://localhost:8080 | |
# run containers | |
- run: sed -i 's/host.docker.internal/172.17.0.1/g' dev/nginx.conf | |
- run: docker compose up --quiet-pull --detach | |
working-directory: dev | |
if: matrix.auth == 'authelia' | |
- run: curl --head -X GET --retry 60 --retry-all-errors --retry-delay 10 http://localhost:8082 | |
if: matrix.auth == 'authelia' | |
# run catalyst | |
- run: | | |
mkdir -p ui/dist/img | |
touch ui/dist/index.html ui/dist/favicon.ico ui/dist/manifest.json ui/dist/img/fake.png | |
- run: go mod download | |
- run: bash start_dev.sh & | |
working-directory: dev | |
if: matrix.auth == 'authelia' | |
- run: curl --head -X GET --retry 60 --retry-all-errors --retry-delay 10 http://localhost:8000 | |
# run cypress | |
- uses: cypress-io/github-action@v4 | |
env: | |
CYPRESS_AUTH: ${{ matrix.auth }} | |
CYPRESS_TEST: ${{ matrix.test }} | |
with: | |
browser: chrome | |
working-directory: ui | |
build-npm: | |
name: Build npm | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: { node-version: '14', cache: 'yarn', cache-dependency-path: 'ui/yarn.lock' } | |
- run: yarn install && yarn build | |
working-directory: ui | |
- uses: actions/upload-artifact@v3 | |
with: { name: ui, path: ui/dist, retention-days: 1 } | |
build: | |
if: github.event_name != 'pull_request' | |
name: Build | |
runs-on: ubuntu-latest | |
needs: [ build-npm, test ] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: { go-version: '1.19', cache: true } | |
- uses: actions/download-artifact@v3 | |
with: { name: ui, path: ui/dist } | |
- name: Version | |
if: github.ref_type == 'tag' && github.ref_name != '' | |
run: | | |
echo ${{ github.ref_name }} | |
echo ${{ github.ref_name }} > VERSION | |
- run: go build -o catalyst ./cmd/catalyst/. | |
- uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
- uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} |