Add remote exec example #537
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: Build And Deploy | |
on: [push] | |
jobs: | |
test: | |
env: | |
GONOSUMDB: "github.com/moby/moby" | |
name: Unit Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Setup Go version | |
uses: actions/setup-go@v1 | |
with: | |
go-version: 1.19 | |
- name: Get dependencies | |
run: | | |
go version | |
go get -v -t ./... | |
#- name: Unit Test | |
# run: | | |
# go test -v -race -coverprofile=coverage.txt -covermode=atomic -short ./... | |
#- name: Upload Code Coverage | |
# uses: codecov/codecov-action@v1 | |
# with: | |
# token: ${{ secrets.CODECOV_TOKEN }} # required | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
title: ${{ github.job_id }} | |
e2e_linux: | |
name: Linux E2E Tests | |
runs-on: ubuntu-latest | |
needs: test | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Go version | |
uses: actions/setup-go@v1 | |
with: | |
go-version: 1.19 | |
- name: E2E test for build binary | |
run: make test_e2e_cmd | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tile: ${{ github.job_id }} | |
description: "End to end tests for Linux" | |
# e2e_mac: | |
# name: Mac E2E Tests | |
# runs-on: ubuntu-latest | |
# needs: test | |
# steps: | |
# - name: Repository Dispatch | |
# uses: peter-evans/repository-dispatch@v1 | |
# with: | |
# token: '${{ secrets.GH_TOKEN }}' | |
# repository: jumppad-labs/jumppad-mac-build | |
# event-type: test | |
# client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}' | |
# - name: Send status to Discord | |
# uses: sarisia/actions-status-discord@v1 | |
# if: always() | |
# with: | |
# webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
# tile: ${{ github.job_id }} | |
# description: "End to end tests for MacOS amd64" | |
functional_test_build: | |
name: Build binary for Functional Tests | |
runs-on: ubuntu-latest | |
needs: test | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Go version | |
uses: actions/setup-go@v1 | |
with: | |
go-version: 1.19 | |
- name: Build Jumppad binary | |
run: | | |
make install_local | |
- name: Build Podman DNS plugin | |
run: | | |
cd .. | |
git clone https://github.com/containers/dnsname.git | |
cd dnsname | |
make | |
sudo cp ./bin/dnsname /usr/local/bin | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: test_binary | |
path: | | |
/usr/local/bin/jumppad | |
/usr/local/bin/dnsname | |
functional_test_docker: | |
name: Functional Test Docker | |
runs-on: ubuntu-latest | |
needs: functional_test_build | |
strategy: | |
max-parallel: 2 | |
fail-fast: false | |
matrix: | |
folder: [ | |
'./examples/container', | |
'./examples/build', | |
'./examples/docs', | |
'./examples/nomad', | |
'./examples/single_k3s_cluster', | |
'./examples/multiple_k3s_clusters', | |
'./examples/local_exec', | |
'./examples/certificates', | |
] | |
steps: | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: test_binary | |
path: /usr/local/bin | |
- name: Make binary executable | |
run: | | |
sudo chmod +x /usr/local/bin/jumppad | |
- uses: actions/checkout@v2 | |
- name: Setup Go version | |
uses: actions/setup-go@v1 | |
with: | |
go-version: 1.19 | |
- name: Run tests | |
run: | | |
jumppad check | |
jumppad purge | |
jumppad test ${{matrix.folder}} | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tile: ${{ github.job_id }} | |
description: "Functional tests for docker: ${{matrix.folder}}" | |
# functional_test_podman: | |
# name: Functional Test Podman | |
# runs-on: ubuntu-latest | |
# needs: functional_test_docker | |
# strategy: | |
# max-parallel: 2 | |
# fail-fast: false | |
# matrix: | |
# folder: [ | |
# './examples/container', | |
# './examples/build', | |
# './examples/docs', | |
# './examples/single_k3s_cluster', | |
# './examples/nomad', | |
# './examples/local_exec', | |
# ] | |
# steps: | |
# - name: Download-Binaries | |
# uses: actions/download-artifact@v2 | |
# with: | |
# name: test_binary | |
# path: /usr/local/bin | |
# | |
# - name: Make binary executable | |
# run: | | |
# sudo chmod +x /usr/local/bin/shipyard | |
# - uses: actions/checkout@v2 | |
# - name: Setup Go version | |
# uses: actions/setup-go@v1 | |
# with: | |
# go-version: 1.19 | |
# | |
# - name: Install dependencies for Podman tests | |
# run: | | |
# sudo apt install -y libbtrfs-dev pkg-config libgpgme-dev libdevmapper-dev podman dnsmasq | |
# | |
# - name: Setup DNSMasq default nameserver resolution | |
# run: | | |
# echo "disable resovld listening on 53" | |
# sudo /bin/bash -c 'echo "DNSStubListener=no" >> /etc/systemd/resolved.conf' | |
# sudo /bin/bash -c 'echo "DNS=8.8.8.8" >> /etc/systemd/resolved.conf' | |
# sudo systemctl restart systemd-resolved.service | |
# echo "configure dnsmasq" | |
# sudo /bin/bash -c 'echo "server=8.8.8.8" >> /etc/dnsmasq.conf' | |
# sudo /bin/bash -c 'echo "server=1.1.1.1" >> /etc/dnsmasq.conf' | |
# sudo systemctl restart dnsmasq | |
# sudo /bin/bash -c 'echo "127.0.0.1 ubuntu" >> /etc/hosts' | |
# | |
# - name: Setup Podman sock | |
# run: | | |
# sudo sed '/^SocketMode=.*/a SocketGroup=docker' -i /lib/systemd/system/podman.socket | |
# sudo chmod +x /run/podman | |
# sudo systemctl enable podman.socket | |
# sudo systemctl enable podman.service | |
# sudo systemctl start podman.service | |
# sudo podman info | |
# | |
# - name: Setup Podman dnsname plugin | |
# run: | | |
# mkdir -p /usr/libexec/cni | |
# sudo cp /usr/local/bin/dnsname /usr/libexec/cni | |
# | |
# - name: Setup Podman registries for Docker.io | |
# run: | | |
# echo -e "[registries.search]\nregistries = ['docker.io']" | sudo tee /etc/containers/registries.conf | |
# - name: Run tests Podman | |
# uses: nick-invision/retry@v2 | |
# with: | |
# timeout_seconds: 600 | |
# max_attempts: 3 | |
# retry_on: error | |
# command: | | |
# export DOCKER_HOST=unix:///run/podman/podman.sock | |
# shipyard check | |
# shipyard test ${{matrix.folder}} | |
# - name: Send status to Discord | |
# uses: sarisia/actions-status-discord@v1 | |
# if: always() | |
# with: | |
# webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
# tile: ${{ github.job_id }} | |
# description: "Functional tests for ${{matrix.folder}}" | |
build_dev: | |
name: Build Dev Version | |
needs: | |
# - test | |
- functional_test_docker | |
# - functional_test_podman | |
# - e2e_mac | |
- e2e_linux | |
if: ${{ github.ref != 'refs/heads/main' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Setup Go version | |
uses: actions/setup-go@v1 | |
with: | |
go-version: 1.19 | |
- name: Install dependencies for Podman | |
run: | | |
sudo apt install -y libbtrfs-dev pkg-config libgpgme-dev libdevmapper-dev | |
- name: Run GoReleaser | |
uses: goreleaser/goreleaser-action@v1 | |
with: | |
version: v1.4.1 | |
args: release --rm-dist --snapshot | |
key: ${{ secrets.GPG_PRIVATE_KEY }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: jumppad_binaries | |
path: | | |
dist/jumppad_darwin_arm64 | |
dist/jumppad_darwin_amd64 | |
dist/jumppad_linux_amd64 | |
dist/jumppad_linux_arm64 | |
dist/jumppad_linux_arm_7 | |
dist/jumppad_linux_arm_6 | |
dist/jumppad_windows_amd64 | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tile: ${{ github.job_id }} | |
description: "Build dev version and upload artifacts" | |
notorize_mac_dev: | |
name: Notrize binaries for Mac | |
needs: build_dev | |
if: ${{ github.ref != 'refs/heads/main' }} | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: jumppad_binaries | |
path: dist/ | |
- name: Import Code-Signing Certificates | |
uses: Apple-Actions/import-codesign-certs@v1 | |
with: | |
# The certificates in a PKCS12 file encoded as a base64 string | |
p12-file-base64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }} | |
# The password used to import the PKCS12 file. | |
p12-password: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} | |
- name: List identities | |
run: | | |
security find-identity | |
- name: Install gon via HomeBrew for code signing and app notarization | |
run: | | |
brew tap mitchellh/gon | |
brew install mitchellh/gon/gon | |
- name: Sign the Arm64 Mac binaries with Gon | |
env: | |
AC_USERNAME: ${{ secrets.AC_USERNAME }} | |
AC_PASSWORD: ${{ secrets.AC_PASSWORD }} | |
run: | | |
gon -log-level=debug -log-json ./.gon_arm64.json | |
- name: Sign the Arm64 Mac binaries with Gon | |
env: | |
AC_USERNAME: ${{ secrets.AC_USERNAME }} | |
AC_PASSWORD: ${{ secrets.AC_PASSWORD }} | |
run: | | |
gon -log-level=debug -log-json ./.gon_amd64.json | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: jumppad_osx_notorized | |
path: | | |
dist/jumppad_arm64.dmg | |
dist/jumppad_arm64.zip | |
dist/jumppad_amd64.dmg | |
dist/jumppad_amd64.zip | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tile: ${{ github.job_id }} | |
description: "Notorize Mac applications" | |
tag: | |
name: Tag latest release | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
needs: | |
- test | |
- functional_test_docker | |
#- functional_test_podman | |
#- e2e_mac | |
- e2e_linux | |
if: ${{ github.ref == 'refs/heads/main' }} | |
steps: | |
- name: Bump version and push tag | |
id: tag | |
uses: mathieudutour/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
description: "Automatically tagged main branch with new tag: ${{ steps.tag_version.outputs.new_tag }}" | |
- name: Remove v in Tag | |
id: version | |
uses: ashley-taylor/[email protected] | |
with: | |
value: ${{ steps.tag.outputs.new_tag }} | |
regex: "v" | |
replacement: "" | |
outputs: | |
new_tag: ${{ steps.tag.outputs.new_tag }} | |
new_version: ${{ steps.version.outputs.value }} | |
build_prod: | |
name: Build Prod Version | |
needs: tag | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ needs.tag.outputs.new_tag }} | |
- name: Setup Go version | |
uses: actions/setup-go@v1 | |
with: | |
go-version: 1.19 | |
- name: Install dependencies for Podman | |
run: | | |
sudo apt install -y libbtrfs-dev pkg-config libgpgme-dev libdevmapper-dev | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USER }} | |
password: ${{ secrets.DOCKER_PASS }} | |
- name: Run GoReleaser | |
uses: goreleaser/goreleaser-action@v1 | |
with: | |
version: v1.4.1 | |
args: release --rm-dist | |
key: ${{ secrets.GPG_PRIVATE_KEY }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: jumppad_binaries | |
path: | | |
dist/jumppad_darwin_arm64 | |
dist/jumppad_darwin_amd64 | |
dist/jumppad_linux_amd64 | |
dist/jumppad_linux_arm64 | |
dist/jumppad_windows_amd64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: jumppad_archives | |
path: | | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_amd64.rpm | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.tar.gz | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_windows_x86_64.zip | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_x86_64.tar.gz | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.deb | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.rpm | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_x86_64.zip | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_arm64.zip | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_amd64.deb | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tile: ${{ github.job_id }} | |
description: "Build prod version and upload artifacts" | |
notorize_mac_prod: | |
name: Notrize binaries for Mac | |
needs: | |
- build_prod | |
- tag | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ needs.tag.outputs.new_tag }} | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: jumppad_binaries | |
path: dist/ | |
- name: Import Code-Signing Certificates | |
uses: Apple-Actions/import-codesign-certs@v1 | |
with: | |
# The certificates in a PKCS12 file encoded as a base64 string | |
p12-file-base64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }} | |
# The password used to import the PKCS12 file. | |
p12-password: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} | |
- name: List identities | |
run: | | |
security find-identity | |
- name: Install gon via HomeBrew for code signing and app notarization | |
run: | | |
brew tap mitchellh/gon | |
brew install mitchellh/gon/gon | |
- name: Sign the Arm64 Mac binaries with Gon | |
env: | |
AC_USERNAME: ${{ secrets.AC_USERNAME }} | |
AC_PASSWORD: ${{ secrets.AC_PASSWORD }} | |
run: | | |
gon -log-level=debug -log-json ./.gon_arm64.json | |
- name: Sign the Arm64 Mac binaries with Gon | |
env: | |
AC_USERNAME: ${{ secrets.AC_USERNAME }} | |
AC_PASSWORD: ${{ secrets.AC_PASSWORD }} | |
run: | | |
gon -log-level=debug -log-json ./.gon_amd64.json | |
- name: Rename files | |
run: | | |
ls -las ./dist | |
rm -f ./dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_arm64.zip | |
rm -f ./dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_x86_64.zip | |
mv ./dist/jumppad_arm64.zip ./dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_arm64.zip | |
mv ./dist/jumppad_amd64.zip ./dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_x86_64.zip | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: jumppad_archives | |
path: | | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_arm64.zip | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_x86_64.zip | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tile: ${{ github.job_id }} | |
description: "Notorize Mac Prod applications and release assets" | |
github_release: | |
name: Create GitHub Release | |
needs: | |
- notorize_mac_prod | |
- tag | |
environment: | |
name: release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: jumppad_archives | |
path: dist/ | |
- name: Generate SHA256 checksums | |
run: | | |
cd dist | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_linux_x86_64.tar.gz > checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.tar.gz >> checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_linux_amd64.deb >> checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.deb >> checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_linux_amd64.rpm >> checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.rpm >> checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_darwin_x86_64.zip >> checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_darwin_arm64.zip >> checksums.txt | |
sha256sum jumppad_${{ needs.tag.outputs.new_version }}_windows_x86_64.zip >> checksums.txt | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
tag_name: ${{ needs.tag.outputs.new_tag }} | |
token: ${{ secrets.GH_TOKEN }} | |
files: | | |
dist/checksums.txt | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_x86_64.tar.gz | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.tar.gz | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_amd64.rpm | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.rpm | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_amd64.deb | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.deb | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_windows_x86_64.zip | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_x86_64.zip | |
dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_arm64.zip | |
brew: | |
name: Release to HomeBrew | |
needs: | |
- github_release | |
- tag | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
repository: 'jumppad-labs/homebrew-repo' | |
token: '${{ secrets.GH_TOKEN }}' | |
- name: Configure Git | |
run: | | |
git config user.email "[email protected]" | |
git config user.name "Jumppad Bot" | |
git pull origin main | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: jumppad_archives | |
path: dist/ | |
- name: Generate HomeBrew config | |
run: | | |
export VERSION=${{ needs.tag.outputs.new_version }} | |
export DARWIN_ARM64_SHA=$(sha256sum ./dist/jumppad${{ needs.tag.outputs.new_version }}_darwin_arm64.zip | cut -d " " -f 1) | |
export DARWIN_x86_SHA=$(sha256sum ./dist/jumppad_${{ needs.tag.outputs.new_version }}_darwin_x86_64.zip | cut -d " " -f 1) | |
export LINUX_ARM64_SHA=$(sha256sum ./dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_arm64.tar.gz | cut -d " " -f 1) | |
export LINUX_x86_SHA=$(sha256sum ./dist/jumppad_${{ needs.tag.outputs.new_version }}_linux_x86_64.tar.gz | cut -d " " -f 1) | |
cat <<- EOF > ./jumppad.rb | |
# typed: false | |
# frozen_string_literal: true | |
class Jumppad < Formula | |
desc "" | |
homepage "https://jumppad.dev/" | |
version "${VERSION}" | |
if OS.mac? && Hardware::CPU.intel? | |
url "https://github.com/jumppad-labs/jumppad/releases/download/v${VERSION}/jumppad_${VERSION}_darwin_x86_64.zip" | |
sha256 "${DARWIN_x86_SHA}" | |
end | |
if OS.mac? && Hardware::CPU.arm? | |
url "https://github.com/jumppad-labs/jumppad/releases/download/v${VERSION}/jumppad_${VERSION}_darwin_arm64.zip" | |
sha256 "${DARWIN_ARM64_SHA}" | |
end | |
if OS.linux? && Hardware::CPU.intel? | |
url "https://github.com/jumppad-labs/jumppad/releases/download/v${VERSION}/jumppad_${VERSION}_linux_x86_64.tar.gz" | |
sha256 "${LINUX_x86_SHA}" | |
end | |
if OS.linux? && Hardware::CPU.arm? && Hardware::CPU.is_64_bit? | |
url "https://github.com/jumppad-labs/jumppad/releases/download/v${VERSION}/jumppad_${VERSION}_linux_arm64.tar.gz" | |
sha256 "${LINUX_ARM64_SHA}" | |
end | |
def install | |
bin.install "jumppad" | |
end | |
end | |
EOF | |
cat ./jumppad.rb | |
rm -rf ./dist | |
- name: Push update | |
run: | | |
git add . | |
git commit -m "Update version to ${{ needs.tag.outputs.new_tag }}" | |
git push | |
choco: | |
name: Update Chocolatey repository | |
runs-on: windows-latest | |
needs: | |
- github_release | |
- tag | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
repository: 'jumppad-labs/choco' | |
- name: Install dependencies | |
run: | | |
choco install checksum -y | |
choco install wget -y | |
- name: Replace checksum | |
run: | | |
wget "https://github.com/jumppad-labs/jumppad/releases/download/v${{ needs.tag.outputs.new_version }}/jumppad_${{ needs.tag.outputs.new_version }}_windows_x86_64.zip" | |
powershell -Command "(gc tools/chocolateyinstall.ps1) -replace '__checksum__', '$(checksum -t sha256 -f jumppad_${{ needs.tag.outputs.new_version }}_windows_x86_64.zip)' | Out-File -encoding ASCII tools/chocolateyinstall.ps1" | |
- name: Replace version | |
run: | | |
powershell -Command "(gc jumppad.nuspec) -replace '__version__', '${{ needs.tag.outputs.new_version }}' | Out-File -encoding ASCII jumppad.nuspec" | |
powershell -Command "(gc tools/chocolateyinstall.ps1) -replace '__version__', '${{ needs.tag.outputs.new_version }}' | Out-File -encoding ASCII tools\chocolateyinstall.ps1" | |
- name: Choco login | |
run: choco apikey -k ${{ secrets.CHOCO_API_KEY }} -s https://push.chocolatey.org/ | |
- name: Choco build | |
run: choco pack | |
- name: Choco push | |
run: choco push -f | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
tile: ${{ github.job_id }} | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
description: "Push new version ${{ needs.tag.outputs.new_version }} to Chocolatey" | |
apt: | |
name: Update fury.io Apt repository | |
needs: | |
- github_release | |
- tag | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: ["amd64.deb", "arm64.deb", "amd64.rpm", "arm64.rpm"] | |
steps: | |
- name: Download release | |
run: | | |
wget "https://github.com/jumppad-labs/jumppad/releases/download/v${{ needs.tag.outputs.new_version }}/jumppad_${{ needs.tag.outputs.new_version }}_linux_${{ matrix.arch }}" | |
- name: Upload release | |
run: | | |
curl -F package=@jumppad_${{ needs.tag.outputs.new_version }}_linux_${{ matrix.arch }} https://${{ secrets.FURY_JUMPPAD_TOKEN }}@push.fury.io/jumppad/ | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
tile: ${{ github.job_id }} | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
description: "Push new version ${{ needs.tag.outputs.new_version }} to Apt" | |
update_website: | |
name: Update Jumpad website with latest version | |
needs: | |
- github_release | |
- tag | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
repository: 'jumppad-labs/jumppad-labs.github.io' | |
token: '${{ secrets.GH_TOKEN }}' | |
- name: Configure Git | |
run: | | |
git config user.email "[email protected]" | |
git config user.name "Jumppad Bot" | |
- name: Write version | |
run: | | |
echo "${{ needs.tag.outputs.new_version }}" > ./public/latest | |
- name: Push update | |
run: | | |
git add . | |
git commit -m "Update version to ${{ needs.tag.outputs.new_version }}" | |
git push | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
tile: ${{ github.job_id }} | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
description: "Update website with latest version ${{ needs.tag.outputs.new_version }}" |