Skip to content

VPN-6626: Install socks proxy as a service #604

VPN-6626: Install socks proxy as a service

VPN-6626: Install socks proxy as a service #604

Workflow file for this run

name: Flatpak Packages
on:
push:
branches:
- main
- "releases/**"
pull_request:
branches:
- main
- "releases/**"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
manifest:
name: "Generate Manifest"
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
sparse-checkout: linux/flatpak/
- name: Install pip tools
shell: bash
run: pip install PyYAML yq
- name: Update git reference
shell: bash
working-directory: linux/flatpak
run: |
python -m yq -yi 'del(.modules[-1].sources[0].branch)' org.mozilla.vpn.yml
python -m yq -yi ".modules[-1].sources[0].url = \"https://github.com/${{ github.repository }}\"" org.mozilla.vpn.yml
python -m yq -yi ".modules[-1].sources[0].commit = \"${{ github.sha }}\"" org.mozilla.vpn.yml
cat org.mozilla.vpn.yml
- name: Add Appstream metainfo
shell: bash
working-directory: linux/flatpak
run: |
curl -sSL -o org.mozilla.vpn.releases.xml \
https://mozilla.github.io/mozillavpn-product-details/org.mozilla.vpn.releases.xml
python -m yq -yi '.modules += ["mozillavpn-appstream.yaml"]' org.mozilla.vpn.yml
- name: Upload manifest
uses: actions/upload-artifact@v4
with:
name: mozillavpn-manifest
path: linux/flatpak
linter:
name: "Linters"
runs-on: ubuntu-latest
needs:
- manifest
steps:
- name: Download manifest
uses: actions/download-artifact@v4
with:
name: mozillavpn-manifest
path: manifest/
- name: Install Flatpak Linting Tools
shell: bash
run: |
sudo apt-get update
sudo apt-get install flatpak flatpak-builder -y
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub -y org.flatpak.Builder
- name: Run Manifest Linters
shell: bash
run: flatpak run --command=flatpak-builder-lint org.flatpak.Builder manifest manifest/org.mozilla.vpn.yml
- name: Run Appstream Linters
shell: bash
run: flatpak run --command=flatpak-builder-lint org.flatpak.Builder appstream manifest/org.mozilla.vpn.metainfo.xml
build:
name: "Build"
runs-on: ubuntu-latest
needs:
- manifest
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.6
options: --privileged
steps:
- name: Download manifest
uses: actions/download-artifact@v4
with:
name: mozillavpn-manifest
path: manifest/
- name: Build
uses: flathub-infra/flatpak-github-actions/flatpak-builder@master
with:
bundle: mozillavpn.flatpak
manifest-path: manifest/org.mozilla.vpn.yml
cache-key: flatpak-builder-${{ github.sha }}
dependabot-cargo:
name: "Update Crates"
runs-on: ubuntu-latest
if: ${{ startsWith(github.head_ref, 'dependabot/cargo/') && github.event_name == 'pull_request' }}
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
token: ${{ secrets.DEPENDABOT_TOKEN }}
- name: Install pip tools
shell: bash
run: pip install requirements-parser PyYAML toml aiohttp
# Do not continue if there are changes to the flatpak directory.
- name: Inspect pull request
id: inspect
shell: bash
run: |
git fetch origin "${{ github.base_ref }}" --depth=1
echo -n "flatpak-changes=" >> $GITHUB_OUTPUT
git diff --name-only --relative=linux/flatpak "origin/${{ github.base_ref }}" | wc -l >> $GITHUB_OUTPUT
- name: Update flatpak rust crates
shell: bash
if: ${{ steps.inspect.outputs.flatpak-changes == 0 }}
run: ./linux/flatpak/flatpak-update-crates.sh ./Cargo.lock
- name: Commit the changes
shell: bash
if: ${{ steps.inspect.outputs.flatpak-changes == 0 }}
run: |
if git diff --name-only | grep -q '^linux/flatpak/flatpak-vpn-crates.json'; then
git add linux/flatpak/flatpak-vpn-crates.json
git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git commit -m "[dependabot skip] Update linux/flatpak/flatpak-vpn-crates.json"
git format-patch --stdout HEAD~1
git push
fi