Merge pull request #276 from jumppad-labs/f-plugins #756
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: | |
branches: | |
- "**" | |
jobs: | |
dagger_build: | |
name: Dagger Build and Test | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set keys | |
run: | | |
echo "${{secrets.QUILL_SIGN_P12}}" | base64 -d > ./cert.p12 | |
echo "${{secrets.QUILL_NOTORY_KEY}}" > ./key.p8 | |
echo "QUILL_SIGN_PASSWORD=${{secrets.QUILL_SIGN_PASSWORD}}" >> $GITHUB_ENV | |
echo "GITHUB_TOKEN=${{secrets.GH_TOKEN}}" >> $GITHUB_ENV | |
- name: All | |
uses: dagger/dagger-for-github@v5 | |
with: | |
verb: call | |
module: ./.dagger | |
args: all --output=./output --src=. --github-token=GITHUB_TOKEN --notorize-cert=./cert.p12 --notorize-cert-password=QUILL_SIGN_PASSWORD --notorize-key=./key.p8 --notorize-id=${{secrets.QUILL_NOTARY_KEY_ID}} --notorize-issuer=${{secrets.QUILL_NOTARY_ISSUER}} | |
version: "0.9.9" | |
cloud-token: ${{ secrets.DAGGER_TOKEN }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: archives | |
path: | | |
./output | |
- name: Send status to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
tile: ${{ github.job_id }} | |
description: "Build application" | |
functional_test_docker: | |
name: Test Docker | |
runs-on: ubuntu-latest | |
needs: dagger_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/exec', | |
'./examples/certificates', | |
'./examples/terraform', | |
'./examples/registries', | |
] | |
steps: | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: archives | |
path: ./build_artifacts | |
- name: Install binary executable | |
run: | | |
cp $(find ./build_artifacts -name "jumppad_*_linux_x86_64.tar.gz" -type f) ./build_artifacts/jumppad.tar.gz | |
sudo tar -xzf ./build_artifacts/jumppad.tar.gz | |
sudo mv ./jumppad /usr/local/bin/jumppad | |
sudo chmod +x /usr/local/bin/jumppad | |
- uses: actions/checkout@v2 | |
- name: Run tests | |
run: | | |
jumppad check --non-interactive | |
jumppad purge --non-interactive | |
jumppad test --non-interactive ${{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: Test Podman | |
runs-on: ubuntu-latest | |
needs: dagger_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/exec', | |
] | |
steps: | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: archives | |
path: ./build_artifacts | |
- name: Install binary executable | |
run: | | |
cp $(find ./build_artifacts -name "jumppad_*_linux_x86_64.tar.gz" -type f) ./build_artifacts/jumppad.tar.gz | |
sudo tar -xzf ./build_artifacts/jumppad.tar.gz | |
sudo mv ./jumppad /usr/local/bin/jumppad | |
sudo chmod +x /usr/local/bin/jumppad | |
- uses: actions/checkout@v2 | |
- name: Install dependencies for Podman tests | |
run: | | |
sudo mkdir -p /etc/apt/keyrings | |
# Debian Unstable/Sid | |
curl -fsSL https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/Debian_Unstable/Release.key \ | |
| gpg --dearmor \ | |
| sudo tee /etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg > /dev/null | |
echo \ | |
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg]\ | |
https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/Debian_Unstable/ /" \ | |
| sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list > /dev/null | |
# Install Podman | |
sudo apt-get update | |
sudo apt-get -y upgrade | |
sudo apt-get -y install podman | |
# Start the Podman sock | |
sudo nohup podman system service -t 0 > ./podman.log & | |
sleep 10 | |
sudo chmod +x /run/podman | |
sudo chmod 777 /run/podman/podman.sock | |
- name: Run tests | |
run: | | |
jumppad check --non-interactive | |
jumppad purge --non-interactive | |
jumppad test --non-interactive ${{matrix.folder}} | |
env: | |
DOCKER_HOST: "unix:///run/podman/podman.sock" | |
- 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}}" | |
release: | |
name: Create GitHub Release | |
if: ${{ github.ref == 'refs/heads/main' }} | |
needs: | |
- functional_test_docker | |
- functional_test_podman | |
environment: | |
name: release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set keys | |
run: | | |
echo "GITHUB_TOKEN=${{secrets.GH_TOKEN}}" >> $GITHUB_ENV | |
echo "GEMFURY_TOKEN=${{secrets.FURY_TOKEN}}" >> $GITHUB_ENV | |
- uses: actions/checkout@v2 | |
- name: Download-Binaries | |
uses: actions/download-artifact@v2 | |
with: | |
name: archives | |
path: ./build_artifacts | |
- name: Release | |
uses: dagger/dagger-for-github@v5 | |
with: | |
verb: call | |
module: ./.dagger | |
args: release --src=. --github-token=GITHUB_TOKEN --gemfury-token=GEMFURY_TOKEN --archives=./build_artifacts --output=./version.txt | |
version: "0.9.9" | |
cloud-token: ${{ secrets.DAGGER_TOKEN }} | |
- name: Set output | |
id: setoutput | |
run: | | |
echo "version=$(cat ./version.txt)" >> $GITHUB_OUTPUT | |
outputs: | |
version: ${{ steps.setoutput.outputs.version }} | |
winget: | |
name: Publish to WinGet | |
needs: | |
- release | |
runs-on: windows-latest | |
steps: | |
- uses: jumppad-labs/[email protected] | |
with: | |
publish-type: "Update" | |
user: "jumppad" | |
package: "jumppad" | |
version: ${{ needs.github_release.outputs.version }} | |
url: "https://github.com/jumppad-labs/jumppad/releases/download/${{ needs.github_release.outputs.version }}/jumppad_${{ needs.github_release.outputs.version }}_windows_x86_64.zip|x64" | |
token: '${{ secrets.GH_TOKEN }}' | |
- 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.github_release.outputs.version }} to Winget" |