bump helm and go to resolve cves (#143) #54
Workflow file for this run
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: publish | |
on: | |
push: | |
tags: | |
- 'v[0-9]+.[0-9]+.[0-9]+' | |
- 'v[0-9]+.[0-9]+.[0-9]+\-beta' | |
- 'v[0-9]+.[0-9]+.[0-9]+\-beta\.[0-9]+' | |
- 'v[0-9]+.[0-9]+.[0-9]+\-alpha' | |
- 'v[0-9]+.[0-9]+.[0-9]+\-alpha\.[0-9]+' | |
env: | |
PACT_VERSION: ${{ github.ref_name }} | |
PACT_BROKER_BASE_URL: ${{ vars.PACT_BROKER_BASE_URL }} | |
PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }} | |
jobs: | |
get-tags: | |
runs-on: ubuntu-22.04 | |
outputs: | |
tag: ${{ steps.get-tags.outputs.tag }} | |
previous-tag: ${{ steps.get-tags.outputs.previous-tag }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get tags | |
id: get-tags | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { | |
data: [latest, previous], | |
} = await github.rest.repos.listTags({ | |
...context.repo, | |
per_page: 2, | |
page: 1, | |
}); | |
core.setOutput("tag", latest.name.replace(/^v/, '')); | |
core.setOutput("previous-tag", previous.name.replace(/^v/, '')); | |
generate-release-notes-pr: | |
runs-on: ubuntu-22.04 | |
needs: [get-tags] | |
if: github.ref_type != 'branch' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Generate Release Notes PR | |
env: | |
GIT_PREV_TAG: ${{ needs.get-tags.outputs.previous-tag }} | |
GIT_TAG: ${{ needs.get-tags.outputs.tag }} | |
GH_PAT: ${{ secrets.GH_PAT }} | |
run: | | |
curl -H "Authorization: token $GH_PAT" \ | |
-H 'Accept: application/json' \ | |
-d "{\"event_type\": \"replicated-sdk-release-notes\", \"client_payload\": {\"version\": \"${GIT_TAG}\", \"prev_version\": \"${GIT_PREV_TAG}\" }}" \ | |
"https://api.github.com/repos/replicatedhq/replicated-docs/dispatches" | |
make-tests: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '^1.21' | |
- uses: replicatedhq/action-install-pact@v1 | |
- run: make test | |
- run: make publish-pact | |
make-build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '^1.21' | |
- run: make build | |
- run: gh release create ${{ github.ref_name }} --generate-notes | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
package-and-publish: | |
runs-on: 'ubuntu-22.04' | |
needs: | |
- get-tags | |
- make-tests | |
- make-build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: replicatedhq/action-install-pact@v1 | |
- name: Pact can-i-deploy | |
run: | | |
make can-i-deploy || echo "::warning:: can-i-deploy says no; provider(s) must successfully verify before release" | |
- uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USER }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Run Package and Publish | |
env: | |
REPLICATED_TAG: v${{needs.get-tags.outputs.tag}} | |
REPLICATED_REGISTRY: replicated # docker.io/replicated | |
REPLICATED_CHART_NAME: replicated | |
REPLICATED_CHART_VERSION: ${{needs.get-tags.outputs.tag}} | |
REPLICATED_USER_STAGING: ${{secrets.REPLICATED_USER_STAGING}} | |
REPLICATED_PASS_STAGING: ${{secrets.REPLICATED_PASS_STAGING}} | |
REPLICATED_USER_PROD: ${{secrets.REPLICATED_USER_PROD}} | |
REPLICATED_PASS_PROD: ${{secrets.REPLICATED_PASS_PROD}} | |
run: | | |
docker build --pull -t "$REPLICATED_REGISTRY/replicated-sdk:$REPLICATED_TAG" --build-arg git_tag=${{needs.get-tags.outputs.tag}} . | |
docker push "$REPLICATED_REGISTRY/replicated-sdk:$REPLICATED_TAG" | |
# TEMPORARY: for backwards compatibility, create another directory to use for the "replicated-sdk" chart | |
cp -R chart chart-sdk | |
cd chart | |
envsubst < Chart.yaml.tmpl > Chart.yaml | |
envsubst < values.yaml.tmpl > values.yaml | |
rm -f *.tmpl | |
export CHART_NAME=`helm package . | rev | cut -d/ -f1 | rev` | |
echo pushing ${CHART_NAME} to staging | |
helm registry login registry.staging.replicated.com --username $REPLICATED_USER_STAGING --password $REPLICATED_PASS_STAGING | |
helm push $CHART_NAME oci://registry.staging.replicated.com/library | |
echo pushing ${CHART_NAME} to production | |
helm registry login registry.replicated.com --username $REPLICATED_USER_PROD --password $REPLICATED_PASS_PROD | |
helm push $CHART_NAME oci://registry.replicated.com/library | |
# TEMPORARY: for backwards compatibility, package and push chart with "replicated-sdk" name | |
cd ../chart-sdk | |
REPLICATED_CHART_NAME=replicated-sdk | |
envsubst < Chart.yaml.tmpl > Chart.yaml | |
envsubst < values.yaml.tmpl > values.yaml | |
rm -f *.tmpl | |
export CHART_NAME=`helm package . | rev | cut -d/ -f1 | rev` | |
echo pushing ${CHART_NAME} to staging | |
helm push $CHART_NAME oci://registry.staging.replicated.com/library | |
echo pushing ${CHART_NAME} to production | |
helm push $CHART_NAME oci://registry.replicated.com/library | |
- name: Pact record-release | |
run: make record-release |